javaweb学习之路(2)response

写一个简单的登录页面

1.创建一个login.jsp文件

主要内容:

    <form action="check.jsp" method="post">
        用户名:<input type="text" name="uname"><br/>
        密码:<input type="password" name="upwd"><br/>
        <input type="submit" value="登录"><br/>
    </form>

2.创建一个check.jsp文件

检查用户名和密码是否正确,正确跳转到成功界面,否则输出“用户名或者密码错误”

主要代码:

     <%
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("uname");
        String pwd = request.getParameter("upwd");
        if(name.equals("mwf")&&pwd.equals("123456")){
            //response.sendRedirect("success.jsp");
            //重定向,数据丢失
            request.getRequestDispatcher("success.jsp").forward(request, response);
            //请求转发
        }
        else{
            out.print("用户名或密码错误!");
        }
    %>    

3.创建一个success.jsp文件

用来输出登陆者的用户名

    登录成功!<br/>
    欢迎你:
    <%
        String name = request.getParameter("uname") ;
        out.print(name) ;
    %>

4.实验效果

 总结:

1.当使用response.sendRedirect("success.jsp");的时候页面会跳转到success.jsp,会发生数据丢失的现象,出来的用户名为null,重定向数据丢失;

原因是:sendRedirect()会新建request对象,所以request中的数据会丢失。

当使用request.getRequestDispatcher("success.jsp").forward(request, response);的时候,页面地址还是会在check.jsp的地址,但是内容是success.jsp的内容,这种叫做请求转发,内容正常显示。

2.response :响应对象提供的几种方法:

void addCookie( Cookie cookie ); 服务端向客户端增加cookie对象
void sendRedirect(String location ) throws IOException; :页面跳转的一种方式(重定向)
void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)

有不足的地方欢迎交流指正,感谢阅读!

原文地址:https://www.cnblogs.com/ma1998/p/12901336.html