可复制直接测试

   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的数据不会显示在地址栏相对安全