溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

JSP學(xué)習(xí)筆記(3)——域?qū)ο蟮膶傩圆僮?/h1>
發(fā)布時(shí)間:2020-07-24 04:06:14 來(lái)源:網(wǎng)絡(luò) 閱讀:2031 作者:殷巖泉 欄目:開(kāi)發(fā)技術(shù)

pageContext, request,session,application 對(duì)象都有這些方法,稱(chēng)為域?qū)ο?br />

  1. Object getAttribute(String name)

  2. Enumeration getAttributeNames()

  3. removeAttribute(String name)

  4. 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)的根目錄

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI