您好,登錄后才能下訂單哦!
pageContext, request,session,application 對(duì)象都有這些方法,稱(chēng)為域?qū)ο?br />
Object getAttribute(String name)
Enumeration getAttributeNames()
removeAttribute(String name)
void setAttribute(String name,Object o)
pageContext:屬性的作用范圍僅限于當(dāng)前JSP頁(yè)面
request:僅限于同一個(gè)請(qǐng)求
session:限于一次會(huì)話(瀏覽器打開(kāi)直到關(guān)閉是一次會(huì)話)
application:屬性的作用范圍限于當(dāng)前web應(yīng)用。只要在一處設(shè)置屬性,在其他各處的JSP或Servlet中都可以獲取到
請(qǐng)求的轉(zhuǎn)發(fā)和重定向:
1.區(qū)別:請(qǐng)求的轉(zhuǎn)發(fā)只發(fā)出了一次請(qǐng)求,而重定向則發(fā)出了兩次請(qǐng)求
//轉(zhuǎn)發(fā):地址欄為/forwardServlet import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ForwardServlet */ @WebServlet("/forwardServlet") public class ForwardServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); //請(qǐng)求的轉(zhuǎn)發(fā) //1.調(diào)用HttpServletRequest的getRequestDispatcher()方法獲取RequestDispatcher對(duì)象 //調(diào)用getRequestDispatcher()需要傳入要轉(zhuǎn)發(fā)的地址 String path = "testServlet"; RequestDispatcher requestDispatcher = request.getRequestDispatcher("/" + path); //2.調(diào)用HttpServletRequest的forward(request,response)進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā) requestDispatcher.forward(request, response); } } //重定向:地址欄為testServlet import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class RedirectServlet */ @WebServlet("/redirectServlet") public class RedirectServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); //執(zhí)行請(qǐng)求的重定向,直接調(diào)用response.sendRedirect(path)方法,path為重定向的地址 String path = "testServlet"; response.sendRedirect(path); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
在最終的Servlet中,轉(zhuǎn)發(fā)的request對(duì)象和中轉(zhuǎn)的那個(gè)request是同一個(gè)對(duì)象,重定向的則不是。
轉(zhuǎn)發(fā):/ 代表的是當(dāng)前web應(yīng)用的根目錄;重定向:代表的是當(dāng)前web站點(diǎn)的根目錄
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。