亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp跳轉getRequestDispatcher()和sendRedirect()的區別

2020-07-27 21:34:12
字體:
來源:轉載
供稿:網友

1.request.getRequestDispatcher()是請求轉發,前后頁面共享一個request ;
response.sendRedirect()是重新定向,前后頁面不是一個request。

2.RequestDispatcher.forward()是在服務器端運行;
HttpServletResponse.sendRedirect()是通過向客戶瀏覽器發送命令來完成.
所以RequestDispatcher.forward()對于瀏覽器來說是“透明的”;
而HttpServletResponse.sendRedirect()則不是。

3.ServletContext.getRequestDispatcher(String url)中的url只能使用絕對路徑; 而ServletRequest.getRequestDispatcher(String url)中的url可以使用相對路徑。因為ServletRequest具有相對路徑的概念;而ServletContext對象無次概念。

RequestDispatcher對象從客戶端獲取請求request,并把它們傳遞給服務器上的servlet,html或jsp。它有兩個方法:

1.void forward(ServletRequest request,ServletResponse response)

用來傳遞request的,可以一個Servlet接收request請求,另一個Servlet用這個request請 求來產生response。request傳遞的請求,response是客戶端返回的信息。forward要在response到達客戶端之前調用,也 就是 before response body output has been flushed。如果不是的話,它會報出異常。

2.void include(ServletRequest request,ServletResponse response)

用來記錄保留request和response,以后不能再修改response里表示狀態的信息。

如果需要把請求轉移到另外一個Web App中的某個地址,可以按下面的做法:
1. 獲得另外一個Web App的ServletConext對象(currentServletContext.getContext(uripath)).

2. 調用ServletContext.getRequestDispatcher(String url)方法。

eg:ServletContext.getRequestDispatcher(“smserror.jsp”).forward(request,response);

代碼實例:
index.jsp:

復制代碼 代碼如下:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

My JSP 'index.jsp' starting page
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3" />
<meta http-equiv="description" content="This is my page" />
    <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
    -->
<form action="servlet/session" method="post">
  用戶名:<input type="text" name="username" />

  密碼:<input type="password" name="password" />

  <input type="submit" />
  </form>

session.java:

復制代碼 代碼如下:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class session extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public session() {
        super();
    }

    /**
     * Destruction of the servlet.

     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet.

     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * The doPost method of the servlet.

     *
     * This method is called when a form has its tag value method equals to post.
     *
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = "";
        String password = "";
        username = request.getParameter("username");
        password = request.getParameter("password");
        HttpSession session = request.getSession();
        session.setAttribute("username", username);
        session.setAttribute("password", password);
        request.setAttribute("name", username);
        request.setAttribute("pwd", password);

        RequestDispatcher dis = request.getRequestDispatcher("/getsession.jsp");
        dis.forward(request, response);

        /*
        response.sendRedirect("http://localhost:8080/sessiontest/getsession.jsp");
        */
                //這個路徑必須是這樣寫,而不能像上面的request.getRequestDispatcher那樣使用相對路徑
                //  而且要是使用response.sendRedirect的話在下面的session.jsp中不能通過request.getAttribute來獲取request對象
                //因為前后使用的不是同一個request,但是session可以,因為session會一直存在直到用戶關閉瀏覽器
    }

    /**
     * Initialization of the servlet.

     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

getsession.jsp:

復制代碼 代碼如下:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>

My JSP 'getsession.jsp' starting page

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3" />
<meta http-equiv="description" content="This is my page" />
    <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  <%   out.print("");   String username = (String)session.getAttribute("username");  
String password = (String)session.getAttribute("password");  
String name = (String)request.getAttribute("name");  
String pwd = (String)request.getAttribute("pwd"); 
 out.println("username " + username + " password " +password);
 //如果上面是使用response.sendRedirect的話就不能獲取到name和pwd  
 out.println("name " + name + "pwd "+ pwd);   
  %>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产久精国产一老狼| 色综合久久精品亚洲国产| 欧美激情国内偷拍| 欧美性xxxxx极品娇小| 欧美午夜精品久久久久久人妖| 欧美日韩国产精品一区二区三区四区| 久久久综合av| 国产日韩欧美中文在线播放| 亚洲男人的天堂在线播放| 在线看国产精品| 国产成人亚洲综合| 欧美夜福利tv在线| 国产精品久久久久久久一区探花| 国产一区二区三区视频免费| 精品露脸国产偷人在视频| www.久久撸.com| 操日韩av在线电影| 久久久国产精品一区| 亚洲天堂第一页| 久热在线中文字幕色999舞| 这里只有精品视频| 欧美性精品220| 91久久夜色精品国产网站| 日韩免费视频在线观看| 国产精品精品久久久| 亚洲午夜激情免费视频| 国产不卡av在线免费观看| 亚洲精品一区久久久久久| 亚洲成**性毛茸茸| 日韩欧美国产免费播放| 亚洲九九九在线观看| 国产手机视频精品| 欧美国产在线电影| 日韩中文娱乐网| 亚洲天堂男人天堂女人天堂| 国产精品成人一区二区| 国产精品久久久久久久久久新婚| 狠狠久久五月精品中文字幕| 亚洲一区二区三区sesese| 在线观看日韩www视频免费| 国产欧美一区二区白浆黑人| 亚洲另类欧美自拍| 成人黄色网免费| 按摩亚洲人久久| 欧美极品少妇xxxxⅹ免费视频| 亚洲成人动漫在线播放| 在线国产精品播放| 一本色道久久88亚洲综合88| 欧美激情中文字幕在线| 一级做a爰片久久毛片美女图片| 92看片淫黄大片欧美看国产片| 日韩美女在线看| 成人中文字幕在线观看| 亚洲国内精品视频| 亚洲第一综合天堂另类专| 欧美日韩免费网站| 欧美在线亚洲在线| 2019中文字幕免费视频| 中文字幕欧美专区| 91精品视频观看| 91在线观看欧美日韩| 国产精品av电影| 欧美精品免费在线观看| 富二代精品短视频| 国产亚洲激情视频在线| 亚洲色图av在线| 91精品视频专区| 亚洲成色999久久网站| 欧美日韩国产精品专区| 日韩免费av一区二区| 久久综合伊人77777| 成人福利在线观看| 中文字幕亚洲一区| 国产精品老女人精品视频| 成人欧美一区二区三区黑人| 国产欧美久久久久久| 久久伊人精品天天| 91爱爱小视频k| 日韩视频在线一区| 精品亚洲aⅴ在线观看| 国产亚洲一区二区精品| 国产视频观看一区| 欧美疯狂做受xxxx高潮| 国产一区二区三区三区在线观看| 精品国产一区二区在线| 国产一区二区三区精品久久久| 在线成人一区二区| 欧美性猛交xxxx乱大交蜜桃| 欧美在线观看日本一区| 亚洲图片制服诱惑| 久热精品视频在线免费观看| 国产精品视频免费观看www| 91老司机精品视频| 日韩在线视频观看| 日韩av在线播放资源| 日本午夜在线亚洲.国产| 欧美高清视频在线观看| 成人在线视频福利| 亚洲新中文字幕| 久久久人成影片一区二区三区观看| 亚洲视频在线观看免费| 久久久久久com| 欧美日韩国产中文精品字幕自在自线| 亚洲精品自拍第一页| 欧美孕妇与黑人孕交| 国产精品美乳一区二区免费| 伊人男人综合视频网| 日韩欧美aⅴ综合网站发布| 久久99热精品| 日本高清久久天堂| 亚洲午夜国产成人av电影男同| 国产精品一区二区女厕厕| 国产狼人综合免费视频| 韩国国内大量揄拍精品视频| 日本精品久久久| 欧美在线视频在线播放完整版免费观看| 51久久精品夜色国产麻豆| 日本成人在线视频网址| 国产成人精品国内自产拍免费看| 亚洲国产又黄又爽女人高潮的| 午夜精品理论片| 亚洲精品av在线播放| 97在线精品视频| 国产精品国产自产拍高清av水多| 欧美日韩高清在线观看| 激情成人中文字幕| 久久久久久久久网站| 亚洲美女精品久久| 国产精自产拍久久久久久| 国产精品一区二区电影| 国产精品久久久久久av下载红粉| 最好看的2019年中文视频| 国产成人精品午夜| 91久久精品美女| 国产91精品黑色丝袜高跟鞋| 91精品国产91久久久久久久久| 综合欧美国产视频二区| 国产v综合v亚洲欧美久久| 日韩欧美亚洲国产一区| 精品国产自在精品国产浪潮| 精品久久久久久久大神国产| 亚洲黄色av网站| 免费成人高清视频| 成人精品一区二区三区电影黑人| 国产精品最新在线观看| 亚洲色图五月天| 国产精品成人aaaaa网站| 中国china体内裑精亚洲片| …久久精品99久久香蕉国产| 亚洲人午夜色婷婷| 欧美成人四级hd版| 91夜夜未满十八勿入爽爽影院| 久久99精品久久久久久琪琪| 国产精品福利小视频| 国产精品96久久久久久| 欧美在线观看日本一区| 91亚洲国产成人精品性色| 国产日本欧美一区二区三区在线| 自拍偷拍亚洲一区| 欧美日本黄视频| 中文字幕欧美国内| 日韩黄色高清视频| 国产精品扒开腿爽爽爽视频| 日韩禁在线播放|