JSP就是在html中嵌套的java代码,因此java代码可以写在jsp中。
导包
在java项目中,一般在工程内创建lib文件夹,把驱动存放在lib文件夹中,再创建路径。
但web项目只需要将驱动放入到WEB-IF自带的lib文件夹中即可。
接口
在jsp文件中使用SQL对象时,需要导包,格式如下:
<%@page import="java.sql.*"%>
JavaBean
下面的示例代码将jsp中与数据库连接并执行sql查询的jdbc代码移到了java类中:
a、查询页面check.jsp(jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="my.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
loginDao dao=new loginDao();
Person per=new Person(name,pwd);
boolean flag=dao.logIn(per);
if(flag==true){
response.sendRedirect("show.jsp");
}
else{
out.print("用户名或密码输入错误");
}
%>
</body>
</html>
b、JDBC查询loginDao.java(java)
package my;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class loginDao {
public boolean logIn(Person per)throws Exception { //返回值true表示登陆成功
boolean flag=false;
Class.forName("com.mysql.jdbc.Driver");
String userName="root";
String passWord="123456";
String connectionUrl="jdbc:mysql://127.0.0.1:3306/userData?useUnicode=true&characterEncoding=UTF-8";
Connection conn=DriverManager.getConnection(connectionUrl,userName,passWord);
String sql="SELECT *from user"; //
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
String username=rs.getString("username");
String password=rs.getString("password");
if(username.equals(per.getUsername())&&password.equals(per.getPassword())){
flag=true;
break;
}
}
rs.close();
conn.close();
return flag;
}
}
c、用于封装用户数据的JavaBean:Person.java
package my;
public class Person {
private String username;
private String password;
public Person() { //无参构造
}
public Person(String username,String password) { //二参构造方法
this.username=username;
this.password=password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
其中loginDao就称之为JavaBean
JavaBean的作用
a、减轻了JSP的复杂度
b、提高了代码复用度,通过调用JavaBean可以实现一系列重复操作
JavaBean(Java类)定义
满足以下两点就可以成为JavaBean:
a、public修饰的类,public无参构造
b、所有的属性都是private,并且提供set/get(如果是boolean则get可以换为is)
使用层面,JavaBean分为2大类:
a、封装业务逻辑的JavaBean(LoginDao.java封装了登录逻辑)
用于操作一个封装数据的JavaBean
b、封装数据的JavaBean(实体类Student.java,Teacher.java)
对应于数据库中的一张表