一、JSP+Servlet+JDBC開發資料庫應用
上一講“JSP+JDBC資料庫應用開發初步”中,我們給出了一個小例子,采用JSP頁面來處理用戶的登錄請求,本講中,我們將該JSP頁面替換為Servlet來處理用戶登錄請求,
實驗步驟如下:
- 用戶登錄頁面仍然采用原來的login.jsp頁面,只需要把form表單的action方法修改為Servlet的url即可,其它不變,
- 資源頁面也仍然采用resource.jsp不變,注意:該頁面需要讀取session中保存的用戶名,若存在,則說明用戶登錄成功,可以顯示資源資訊,否則重新跳轉到登錄頁,
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8" import="java.util.*"%>
<html>
<body>
<%
String username="";
username=(String)session.getAttribute("userName");
if(username!=null)
out.println("歡迎"+username+"訪問網站資源");
else
response.sendRedirect("login.jsp");
%>
</body>
</html>
- 新建servlets包,在該包內新建一個Servlet,命名為Handle,在自動生成的代碼中匯入如下幾個包,用于訪問資料庫:
import javax.servlet.http.HttpSession;
import db.DBUtil;
import java.sql.SQLException;
- 修改doGet()方法,通過訪問資料庫來驗證用戶名和口令
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*---獲取用戶登錄頁面提交的用戶名和密碼---*/
String username=request.getParameter("userName");
String password=request.getParameter("passWord");
HttpSession session=request.getSession();
/*---定義jdbc資料庫連接---*/
java.sql.Connection conn=null;
java.sql.PreparedStatement pre=null;
java.sql.ResultSet rs=null;
try{
conn=DBUtil.getConnection();
/*---定義sql陳述句并設定引數---*/
String sql="select * from stu where username=? and password=?";
pre=conn.prepareStatement(sql);
pre.setString(1,username);
pre.setString(2,password);
/*---執行sql陳述句---*/
rs=pre.executeQuery();
/*---根據查詢結果進行登錄跳轉處理 ---*/
if(rs.next()){
session.setAttribute("userName", username);
session.setAttribute("passWord", password);
response.sendRedirect(request.getContextPath()+"/resource.jsp");
}
else{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
} catch(Exception e){
e.printStackTrace();
} finally {
/*---釋放資源并關閉連接 ---*/
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pre!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
二、JSP+Servlet+JDBC+JavaBean開發資料庫應用
本例修改上文中的Servlet,在其驗證用戶登錄資訊后,創建一個JavaBean物件保存在Session中,代替上例中的username和password兩個字串,這樣可以通過JavaBean在頁面間實作值的傳遞,
- 首先要在entity包中創建一個JavaBean,本例命名為Stu
- 在Servlet中匯入該Stu類
import entity.Stu;
- 修改doGet()方法代碼,創建Stu物件stu,呼叫set方法設定屬性值,然后保存在session中,如下:
//省略部分代碼
/*---根據查詢結果進行登錄跳轉處理 ---*/
if(rs.next()){
/*---創建Stu物件,命名為stu,并設定屬性值 ---*/
Stu stu=new Stu();
stu.setUsername(username);
stu.setPassword(password);
session.setAttribute("stu", stu);
response.sendRedirect(request.getContextPath()+"/resource.jsp");
}
else{
response.sendRedirect(request.getContextPath()+"/login.jsp");
}
//省略部分代碼
- 同時,resource.jsp檔案也要進行相應修改,利用page指令匯入Stu類,并且在Session中讀取Servlet保存的stu物件,
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8" import="java.util.*"%>
<%@ page import="entity.Stu" %>
<html>
<body>
<%
Stu stu=(Stu)session.getAttribute("stu");
if(stu!=null)
out.println("歡迎"+stu.getUsername()+"訪問網站資源!<Br>"+"您的登錄密碼是:"+stu.getPassword());
else
response.sendRedirect("login.jsp");
%>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/204889.html
標籤:其他
上一篇:CSS浮動
下一篇:快速排序(分治策略)
