JSP實現簡單登錄和請求轉發與過程分析

 可複製直接測試

   Login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!--method不填默認是get-->
    <form action="check.jsp" method="post">
                 用 戶名:<input type="text" name="user"/><br/>
                 密碼 :  <input type="password" name="pwd"/><br/>
            
           <input type="submit" value="登錄">                        
    </form>
</body>
</html>

 

check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <% 
        request.setCharacterEncoding("utf-8");//設置post的參數編碼
    
        //取參數
        String name = request.getParameter("user");
        String pwd  = request.getParameter("pwd");
        if(name.equals("hj")&&pwd.equals("123")){
        	request.getRequestDispatcher("success.jsp").forward(request,response);//請求轉發,轉發後地址欄不變
        	//response.sendRedirect("success.jsp");//重定向參數丟失,導致success.jsp不能正確顯示name
        }else{
        	out.print("error");
        }
        
        	
    %>
</body>
</html>

 success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
        String user = request.getParameter("user");//接收參數
        out.print("Welcome"+user);//輸出,如果用重定向,那麼結果會顯示爲null

    %>
</body>
</html>

大體流程:

           1. 用戶在客戶端(login.jsp瀏覽器端)填好參數user和pwd 點擊提交,信息被髮送到check.jsp

           2. check.jsp  接收兩個參數 ,進行驗證,如果確認是正確的用戶,進行請求轉發轉發到success.jsp

           3.  success.jsp     回顯Weclome注意:  此時地址欄顯示的是check.jsp

 

請求轉發和重定向的區別:

    1.

              請求轉發地址欄不變

               重定向地址欄會改變

   2.

               請求時的數據,在請求轉發時會保留

               重定向並不保留

 

 

 

get與post區別:

1.  get在地址欄上會顯示所有的請求數據,(有長度限制,4-5kb;不能上傳大文件)

2.  文件上傳操作必須是post,post的數據不會顯示在地址欄相對安全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章