JSP+JDBC开发数据库应用
以下完成一个简单的用户登录示例程序:
通过登录页面提交用户名和口令进行登录,后端处理页面通过JDBC访问数据库,查询用户名和口令,若查询结果不为空,则跳转到资源页面。
实验步骤如下:
1.新建前端页面login.jsp,通过表单提交get请求到后端处理页面loginhandle.jsp。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8" import="java.util.*"%>
<html>
<body>
<form name="login" method="get" action="loginhandle.jsp">
姓名:<input name="userName" type="text"/><br />
密码:<input name="passWord" type="password"/> <br />
<input type="submit" name="Submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>
-
WEB-INF/lib目录下导入MySQL连接组件jar包,src目录下新建名称为db的package,并导入DBUtil.java文件。
-
新建登录处理页面loginhandle.jsp,首先通过import指令导入JDBC相关类和db.DBUtil类,然后连接数据库并接收前端请求参数,执行sql语句,最后根据查询结果进行跳转。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8" import="java.util.*"%>
<%@ page import="com.mysql.jdbc.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="db.DBUtil" %>
<html>
<body>
<%
/*---从前端页面请求中获取用户提交的用户名和口令---*/
String username = "";
String password = "";
request.setCharacterEncoding("UTF-8");
username = request.getParameter("userName");
password = request.getParameter("passWord");
/*---定义jdbc数据库连接---*/
java.sql.Connection conn=null;
java.sql.PreparedStatement pre=null;
java.sql.ResultSet rs=null;
try{
conn=DBUtil.getConnection(); //调用DBUtil类的getConnection方法建立与数据库的连接
/*---定义sql语句并设置参数---*/
String sql="select * from stu where username=? and password=?"; //“?”代表sql语句中的查询条件参数值
pre=conn.prepareStatement(sql);
pre.setString(1,username); //设置sql语句中查询条件的第一个参数值为前端页面提交的用户名
pre.setString(2,password); //设置sql语句中查询条件的第二个参数值为前端页面提交的用户名
/*---执行sql语句---*/
rs=pre.executeQuery();
/*---根据查询结果进行登录跳转处理 ---*/
if(rs.next()){
session.setAttribute("userName", username);
session.setAttribute("passWord", password);
response.sendRedirect("resource.jsp");
}
else{
response.sendRedirect("login.jsp");
}
} catch(Exception e){
e.printStackTrace();
} finally {
/*---释放资源并关闭连接 ---*/
rs.close();
pre.close();
conn.close();
}
%>
</body>
</html>