• 请求转发--req.getRequestDispatcher("XX").forward(req, resp);


    在一个servlet中可以调用另外一个servlet来处理请求,如:

        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setCharacterEncoding("utf-8");
            req.setCharacterEncoding("utf-8");
    
            resp.getWriter().write("XXXXXX 来自TestCoding的信息");
    
            String name = req.getParameter("name");
            System.out.println(name);
    
            //重定向,转到TestCoding这个servlet去处理请求
            req.getRequestDispatcher("TestDispatch").forward(req, resp);
    
        }

    其中,getRequestDispatcher的参数是servlet在web.xml中的别名

    ***经测试发现,一旦一个servlet将一个请求转发给了另一个servlet,那么原来的servlet中的resp.getWriter().write()语句就不会执行

    同时,servlet在向另一个servlet转发时,可以在req中附带上自己的数据,方式如下:

            req.setAttribute(Object key, Object value);

    获取前一个servlet传过来的servlet的方式如下:

            req.getAttribute(key);
  • 相关阅读:
    SpringMVC听课笔记(一:SpringMVC概述)
    IDEA快捷键
    Java学习方法以及eclipse看jdk源码
    SpringMVC参数绑定
    正向代理、反向代理
    代理模式
    面试准备
    一致性哈希
    synchronized的底层探索
    哈夫曼编码
  • 原文地址:https://www.cnblogs.com/Ryan368/p/13700903.html
Copyright © 2020-2023  润新知