1.注意事項
jsp中盡可能不要寫java代碼,所以將訪問數(shù)據(jù)庫的java代碼封裝在javabean中,然后在jsp中調(diào)用javabean的對象即可。
在寫好javabean調(diào)用時,出現(xiàn)了Classes from the default package must not be referenced from JSP file的問題
該問題的解決方法是在src中建一個文件夾,將javabean放在這個文件夾中,而不是直接放在src文件夾中。
2.具體步驟
- 1.先在src中新建一個文件夾,在該文件夾中創(chuàng)建一個類文件。
- 2.在該類中寫java代碼
package jdbc;
import java.sql.*;
public class loginDao {
//傳入姓名和密碼
public int login(String name, String pwd) throws ClassNotFoundException, SQLException {
String NAME="root";
String PWD="密碼";
String URL = "jdbc:mysql://localhost:3306/user";
Connection con =null;
PreparedStatement pstmt=null;
ResultSet rs =null;
Class.forName("com.mysql.cj.jdbc.Driver");
con =DriverManager.getConnection(URL,NAME,PWD);
String sql="select * from users where name='"+name+"'and password='"+pwd+"'";
pstmt = con.prepareStatement(sql);
rs=pstmt.executeQuery();
//如果rs對象存在,則返回1
if(rs.next()){
return 1;
}
else
{
return 0;
}
}
}
- 2.在jsp中使用該對象
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>logincheck2</title>
</head>
<body>
<%
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
jdbc.loginDao Dao =new jdbc.loginDao();
int s=Dao.login(name,pwd);
if (s=1){
out.print("登陸成功");
}
else{
out.print("登陸失敗");
}
%>
</body>
</html>
3.javabean的定義
1.public修飾的類,修飾的無參構造
2.所有的屬性都是private,并且提供get/set
4
- 1.封裝業(yè)務邏輯的javabean(loginDao.java封裝了登陸邏輯) 邏輯
將jsp中jdbc代碼,封裝到login.java類中(login.java)
提高了復用度 以后的登陸操作都可以使用這個類
-*** 2.封裝數(shù)據(jù)的javabean 相當于數(shù)據(jù)庫中的一張表***
1.在包中新建Login.java javabean
2.在javabean中實現(xiàn)對傳入數(shù)據(jù)的賦值get 和set方法
3.在jsp中使用login.java javabean
String name =request.getParameter("uname");
String pwde =request.getParameter("upwd");
Login login = new login(name,pwd);
//此方法可以將兩個參數(shù)裝入一個對象
//通過下面這兩個方法取值
login.getname();
login.getpwd();