• 学习jsp篇:jsp简单实例之二登录


    编程环境:IDEA,Tomcat,JavaEE

    一、实例二登录

    1、在自己建的工程下的web目录下建一个文件夹为login,在login中编写登录代码(其实就是和实例一同一个项目)

    2、先建登录页面jsp文件login.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>登录</title>
    </head>
    <body>
        <form action="check.jsp" method="post">
            用户名: <input type="text" name="uname" ><br/>
            密码: <input type="password" name="upwd"><br/>
                  <input type="submit" value="登录"><br/>
        </form>
    </body>
    </html>

    校验check.jsp页面代码

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>校验登录</title>
    </head>
    <body>
          <form>
               <%
                   request.setCharacterEncoding("utf-8");
                   String name=request.getParameter("uname");
                   String password=request.getParameter("upwd");
                   if(name.equals("zz")&&password.equals("1111")){
                       //页面跳转方式一,重定向,数据会丢失
                       //response.sendRedirect("success.jsp");
                       //页面跳转方式二,请求转发,数据不会丢失
                       request.getRequestDispatcher("success.jsp").forward(request,response);
                   }else{
                       out.println("登录失败,用户名或者密码有误");
                   }
               %>
          </form>
    </body>
    </html>

    登录成功页面success.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
            <%
                String name=request.getParameter("uname");
            %>
            成功登录
            欢迎您: <br/>
                <%=name%>  <br/>
    
    </body>
    </html>

    3、运行结果

    在check.jsp 中有两种跳转方式:(1)请求转发request.getRequestDispatcher(2)重定向response.sendRedirect("xxx.jsp")

    在重定向中调用的是response类

    4、response---内置对象,响应对象

    常见方法:(1)void addCookie(Cookie cookie)服务端向客户端增加cookie对象(2)void sendRedirect(String location)throws IOException 重定向页面跳转(3)void setContextType(String type)设置服务端响应编码

    5、请求转发request.getRequestDispatcher和重定向response.sendRedirect("xxx.jsp")的区别(这个知识挺重要的,我觉得)

    (1)相同点:都是改变客户端的请求方向

    (2)不同点:

      

      请求转发 重定向
    地址栏是否改变 不改变

    改变

    是否保存第一次请求时数据 保留 不保留
    请求次数 1 2
    跳转发生位置 服务端 客户端(发出二次请求)

    对于这些不同点,我画个图来解释(请忽略我的渣画技。。)

    根据上述图可以看到请求转发是服务端内部将响应客户端的对象指针改变了,而重定向是响应告诉客户端他应该向别的对象请求,然后客户端再一次请求。

    补充一点:是否保存第一次请求时数据中数据指的是客户端第一次请求时保存在request中的请求信息,请求转发时,仍然会携带该信息,重定向则不会。

  • 相关阅读:
    20.11.16 leetcode406 leetcode中的排序写法
    20.11.15 leetcode402
    20.11.14 leetcode1122(自定义排序)
    polyline NOIP模拟 数论 规律
    alien NOIP模拟 位运算 数论
    跳石头 vijos1981 NOIP2015 D2T1 二分答案 模拟 贪心
    寻找道路 vijos1909 NOIP2014 D2T2 SPFA
    不死的LYM NOIP模拟 二分+状压DP
    死亡的颂唱者 NOIP模拟 贪心 DFS
    无线网络发射器选址 vijos 1908 NOIP2014 D2T1 模拟
  • 原文地址:https://www.cnblogs.com/ym77/p/11321716.html
Copyright © 2020-2023  润新知