zoukankan      html  css  js  c++  java
  • Servlet重定向

     A本来要去找C

    但是它先去找了B

    B说在C那 然后他又去找C

    一个web资源收到客户端请求后,他会通知客户端去访问另外一个web资源,这个过程叫重定向

    常见场景:

      `用户登录

        void sendRedirect(String var1) throws IOException;//关键方法
      @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.sendRedirect("/rs/img");//重定向   rs为项目路径
        }

    去webapp下做一个映射

     运行测试

     跳转到img  url路径改变

     重定向原理就是做了这两步

     resp.setHeader("Location","/rs/img");
     resp.setStatus(302);

    问题:重定向和转发的区别

    相同点

      `页面都会实现跳转

    不同点

      `请求转发的时候,url不会产生变化  

      `重定向时候,url地址栏会发生变化;

     练习:

    <html>
    <body>
    <h2>Hello World!</h2>
    
    <%--快捷键 Ctrl+/--%>
    <%--这里提交的路径,需要寻找到项目的路径--%>
    <%--${pageContext.request.contextPath}代表当前项目--%>
    <form action="${pageContext.request.contextPath}/login" method="get">
        用户名:<input type="text" name="username"><br/>
        密码:  <input type="password" name="password"><br/>
        <input type="submit">
    </form>
    </body>
    </html>

     跳转页面

      @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("进入");
            //处理请求
            String username = req.getParameter("username");//从请求里面获取参数
            String password = req.getParameter("password");
            System.out.println(username+":"+password);
            //重定向时候一定要注意,路径问题,否则就会404:
            resp.sendRedirect("/rs/success.jsp");
        }

    设置webapp映射

     运行测试

     输入之后点提交 便会重定向到success.jsp页面

     此时后台

     

  • 相关阅读:
    js穿梭框;将两个table中的数据选中移动
    MySQL权限管理实战
    CentOS 7平台rpm包部署MySQL 8.0、Spring Security权限注解
    Nginx服务器配置服务实战
    创建索引,这些知识应该了解
    如何实现对ELK各组件的监控?试试Metricbeat
    大数据量查询容易OOM?试试MySQL流式查询
    免费正版IntelliJ IDEA license详细指南
    MySQL查询语句进阶知识集锦
    ClickHouse性能优化?试试物化视图
  • 原文地址:https://www.cnblogs.com/nuliyao123/p/14418732.html
Copyright © 2011-2022 走看看