zoukankan      html  css  js  c++  java
  • 域对象的属性和请求的转发重定向

    1 在HttpServlet中有操作属性的方法,在pageContext,request,session,application四个域对象中也有操作属性的方法。

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 页面2
    
      </head>
      
      <body>
         request: <% request.setAttribute("requestValue",123); %>
         session: <% session.setAttribute("sessionValue",123); %>
         application: <% application.setAttribute("applicationValue",123); %>
         <a href="TestServlet">to servlet</a> <br/>
         <a href="ForwardServlet">to servlet2</a> <br/>
         <a href="RedirectServlet">to servlet3</a> <br/>
      </body>
    </html>
    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class TestServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public TestServlet() {
            super();
        }
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            
            Object requestVal = request.getAttribute("requestValue");
            out.println("requestVal:"+requestVal);
            out.println("<br><br>");
            
            Object sessionVal = request.getSession().getAttribute("sessionValue");
            out.println("sessionVal:"+sessionVal);
            out.println("<br><br>");
            
            Object applicationVal = getServletContext().getAttribute("applicationValue");
            out.println("applicationVal:"+applicationVal);
            out.println("<br><br>");
        }
    
        /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        public void init() throws ServletException {
            // Put your code here
        }
    
    }

    2 请求的转发和重定向本质区别:前者只发了一次请求,而重定向发出了两次请求

      请求的转发:地址栏是初次发出请求的地址;在最终的Servlet中,request对象和中转的request是同一个对象;只能转发给当前WEB应用的资源

      请求的重定向:地址栏不再是初次发出的请求地址,地址栏为最后响应的那个地址,request对象和中转的request不是同一个对象。可以重定向到任何资源

    public class ForwardServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public ForwardServlet() {
            super();
        }
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
    
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            
            String path = "TestServlet";
            RequestDispatcher rd = request.getRequestDispatcher(path);
            rd.forward(request, response);
            
        }
    public class RedirectServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public RedirectServlet() {
            super();
        }
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
    
        
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            String path = "TestServlet";
            response.sendRedirect(path);
        }
  • 相关阅读:
    hbase distributed setup and configuration
    代码优化 性能调优
    正则表达
    [转载]Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布)
    [JQuery]一款不错的jquery验证框架
    js特效集
    jQuery滚动插件2 jCarousel
    c3p0连接池
    php5 apache config
    jQuery滚动插件 (轮播)
  • 原文地址:https://www.cnblogs.com/yjtm53/p/4198600.html
Copyright © 2011-2022 走看看