1. 程式人生 > >Request應用之使用者登陸失敗資訊回顯

Request應用之使用者登陸失敗資訊回顯

程式碼如下

public class LoginServlet1 extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("UTF-8"); //防止post提交方式亂碼
		//要清楚使用者登陸業務第一個是獲取使用者名稱以及密碼
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		//通過使用者名稱user來判斷user是否登陸成功 即沒成功則為null
		User user = null;
		try {
			//業務方法 來判斷使用者是否登陸成功
			user = login(username,password);
			
			if(user!=null) {
				
				//這裡要知道為什麼用了重定向 沒用轉發
				response.sendRedirect("/Web01/index.jsp");
			}else {
				//設定域屬性 在html頁面中使用jsp呼叫顯示
				request.setAttribute("LoginInfo", "登入失敗,使用者名稱或密碼錯誤");
				//使用轉發 要明白為什麼要用請求轉發
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public User login(String username,String password) throws SQLException {
		
		//C3P0連線池基礎操作
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		
		String sql = "select * from user where username=? and password=?";
		
		User user = qr.query(sql, new BeanHandler<User>(User.class), username,password);
		
		
		return user;
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
//jsp中的顯示回顯資訊程式碼
<%= request.getAttribute("LoginInfo")==null?"":request.getAttribute("LoginInfo") %>