7 Servlet交互和作用域對象
阿新 • • 發佈:2018-02-12
set 防止 isp strong 地址欄 out 獲取數據 響應 請求轉發 1.多個web組件進行跳轉(加上/就是絕對路徑)
WEB組件跳轉的三種方式:(組件包括Servlet,jsp,Filiter) ①.請求轉發(forword) request對象.getRequestDispatcher(String path).forword(request,response); 特點: 地址欄不變 AServlet和BServlet共享同一個請求(共享請求數據) 頁面響應的數據是有BServlet決定的 不能跨域訪問 可以訪問WEB-INF下面的資源 ②.URL重定向(redirect) response對象.sendRedirect(String path); 特點: 地址欄中的地址改變 AServlet和BServlet各自發一個請求(不能共享請求數據) 頁面響應的數據是由BServlet決定的 可以跨域訪問 不能訪問WEB-INF下面的資源 1.1使用請求轉發 需要在同一個請求對象中共享數據 需要訪問WEB-INF下面的資源 1.2.使用URL重定向 需要跨域訪問 使用URL重定向可以防止表單重復提交 1.3.請求包含(include)
2.需要多個頁面跳轉共享數據要依賴作用域對象(web組件的3大作用域)
對象名稱 數據類型 對象描述 request HttpServletRequest 在一個請求中共享數據 session HttpSession 在一個會話共享數據 (ServletContext)application ServletContext 在一個應用中共享數據 所有作用域對象設置/獲取數據一樣: 設置共享數據: 作用域對象.setAttribute(String name,Object value); 獲取共享數據: 作用域對象.getAttribute(String name); 各自的作用共享的數據只能在各自的作用域中取出來,不能跨作用域取共享數據
3.ServletContext接口和常用方法
接口ServletContext就是上下文 獲取ServletContext對象: ServletContext ctx=request.getSession().getServletContext(); 獲取當前應用的上下文路徑: String path=ctx.getContextPath(); 獲取當前項目的根路徑: ctx.getRealPath(String name); 獲取全局的初始化參數: ctx.getInitParameter(String name); 獲取局部的初始化參數: super.getInitParameter(String name); 全局初始化參數的配置: <context-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </context-param>
4.JSP
①.JSP的原理:
JSP文件-->Servlet類-->編譯成字節碼-->解釋執行
JSP底層使用Servlet輸出流輸出HTML代碼片段
JSP語法:
輸出數據到頁面上:<%= %>
相當於在servlet中的service方法寫java代碼:<% %>
②.JSP的三大指令:
page/include/taglib
指令的語法:
<%@ 指令名稱 屬性名稱="屬性值"%>
2. include(靜態包含,包含其他組件)
語法:<%@ include file=""%>
動態包含:<jsp:include page=""/>
3.taglib(引入外部標簽)
<%@taglib uri="" prefix=""%>
③.JSP的九大內置對象
pageContext 在當前頁面共享數據
request 在一個請求共享數據
session 在一個會話中共享數據
application 在一個應用中共享數據
response 響應對象
exception 異常對象
config 獲取初始化配置參數對象
out 輸出流對象
page 當前servlet對象
④.JSP的四大作用域
pageContent
request
session
application
⑤.JSP的動作元素
<jsp:include/>
<jsp:forward/>
<jsp:param/>:在包含和轉發時,利用該標簽傳遞請求參數
靜態包含和動態包含的區別:
靜態包含在翻譯的時候,將多個JSP合並翻譯成一個Servlet
動態包含在翻譯時,每個jsp文件都會翻譯成對應的Servlet,
在程序運行加載到JVM中的時候動態合並
動態包含可以傳遞參數
⑥.改JSP的模版文件
JSP Files-->Templates-->New JSP File(html)
7 Servlet交互和作用域對象