這篇文章主要介紹了JavaEE的Servlet核心API如何使用的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaEE的Servlet核心API如何使用文章都會有所收獲,下面我們一起來看看吧。

10年積累的成都網(wǎng)站設(shè)計、成都做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有蕭山免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Servlet是JavaWeb的三大組件之一(Servlet、Filter、Listener),它屬于動態(tài)資源。Servlet的作用是處理請求,服務(wù)器會把接收到的請求交給Servlet來處理,在Servlet中通常需要:接收請求數(shù)據(jù);處理請求;完成響應。
| API | 作用描述 |
|---|---|
| ServletConfig | 獲取servlet初始化參數(shù)和servletContext對象。 |
| ServletContext | 在整個Web應用的動態(tài)資源之間共享數(shù)據(jù)。 |
| ServletRequest | 封裝Http請求信息,在請求時創(chuàng)建。 |
| ServletResponse | 封裝Http響應信息,在請求時創(chuàng)建。 |
容器在初始化servlet時,為該servlet創(chuàng)建一個servletConfig對象,并將這個對象通過init()方法來傳遞并保存在此Servlet對象中。核心作用:1.獲取初始化信息;2.獲取ServletContext對象。
配置文件
<servlet> <init-param> <param-name>my-name</param-name> <param-value>cicada</param-value> </init-param> <servlet-name>servletOneImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletOneImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletOneImpl</servlet-name> <url-pattern>/servletOneImpl</url-pattern> </servlet-mapping>
API用法
public class ServletOneImpl implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
String servletName = servletConfig.getServletName() ;
System.out.println("servletName="+servletName);
String myName = servletConfig.getInitParameter("my-name") ;
System.out.println("myName="+myName);
Enumeration paramNames = servletConfig.getInitParameterNames() ;
while (paramNames.hasMoreElements()){
String paramKey = String.valueOf(paramNames.nextElement()) ;
String paramValue = servletConfig.getInitParameter(paramKey) ;
System.out.println("paramKey="+paramKey+";paramValue="+paramValue);
}
ServletContext servletContext = servletConfig.getServletContext() ;
servletContext.setAttribute("cicada","smile");
}
}一個項目只有一個ServletContext對象,可以在多個Servlet中來獲取這個對象,使用它可以給多個Servlet傳遞數(shù)據(jù),該對象在Tomcat啟動時就創(chuàng)建,在Tomcat關(guān)閉時才會銷毀!作用是在整個Web應用的動態(tài)資源之間共享數(shù)據(jù)。
獲取方式
1、ServletConfig#getServletContext(); 2、GenericServlet#getServletContext(); 3、HttpSession#getServletContext() 4、ServletContextEvent#getServletContext()
ServletContext是JavaWeb四大域?qū)ο笾唬?/p>
1、PageContext; 2、ServletRequest; 3、HttpSession; 4、ServletContext;
所有域?qū)ο蠖加写嫒?shù)據(jù)的功能,因為域?qū)ο髢?nèi)部有一個Map,用來存儲數(shù)據(jù)。
配置文件
<context-param> <param-name>my-blog</param-name> <param-value>2019-11-19</param-value> </context-param> <servlet> <servlet-name>servletTwoImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletTwoImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletTwoImpl</servlet-name> <url-pattern>/servletTwoImpl</url-pattern> </servlet-mapping>
API用法
public class ServletTwoImpl extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
// 1、參數(shù)傳遞
ServletContext servletContext = this.getServletContext() ;
String value = String.valueOf(servletContext.getAttribute("cicada")) ;
System.out.println("value="+value);
// 2、獲取初始化參數(shù)
String myBlog = servletContext.getInitParameter("my-blog") ;
System.out.println("myBlog="+myBlog);
// 3、獲取應用信息
String servletContextName = servletContext.getServletContextName() ;
System.out.println("servletContextName="+servletContextName);
// 4、獲取路徑
String pathOne = servletContext.getRealPath("/") ;
String pathTwo = servletContext.getRealPath("/WEB-INF/") ;
System.out.println("pathOne="+pathOne+";pathTwo="+pathTwo);
response.getWriter().print("執(zhí)行:doGet; value:"+value);
}
}HttpServletRequest接口繼承ServletRequest接口,用于封裝請求信息,該對象在用戶每次請求servlet時創(chuàng)建并傳入servlet的service()方法,在該方法中,傳入的servletRequest將會被強制轉(zhuǎn)化為HttpservletRequest對象來進行HTTP請求信息的處理。核心作用:1.獲取請求報文信息;2.獲取網(wǎng)絡(luò)連接信息;3.獲取請求域?qū)傩孕畔ⅰ?/p>
配置文件
<servlet> <servlet-name>servletThreeImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletThreeImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletThreeImpl</servlet-name> <url-pattern>/servletThreeImpl</url-pattern> </servlet-mapping>
API用法
public class ServletThreeImpl extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// http://localhost:6003/servletThreeImpl?myName=cicada
String method = request.getMethod();
System.out.println("method="+method); // GET
String requestURL = request.getRequestURL().toString();
// http://localhost:6003/servletThreeImpl
System.out.println("requestURL="+requestURL);
String requestURI = request.getRequestURI();
System.out.println("requestURI="+requestURI); // /servletThreeImpl
String queryString = request.getQueryString() ;
System.out.println("queryString="+queryString); // myName=cicada
String myName = request.getParameter("myName");
System.out.println("myName="+myName); // cicada
}
}HttpServletResponse繼承自ServletResponse,封裝了Http響應信息。客戶端每個請求,服務(wù)器都會創(chuàng)建一個response對象,并傳入給Servlet.service()方法。核心作用:1.設(shè)置響應頭信息;2.發(fā)送狀態(tài)碼;3.設(shè)置響應正文;4.重定向;
配置文件
<servlet> <servlet-name>servletFourImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletFourImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletFourImpl</servlet-name> <url-pattern>/servletFourImpl</url-pattern> </servlet-mapping>
API用法
public class ServletFourImpl extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8") ;
response.setCharacterEncoding("UTF-8");
response.setStatus(200) ;
response.getWriter().print("Hello,知了");
}
}轉(zhuǎn)發(fā)
服務(wù)器端進行的頁面跳轉(zhuǎn)的控制 ;
request.getRequestDispatcher("/轉(zhuǎn)發(fā)地址").forward(request, response);重定向
服務(wù)端響應跳轉(zhuǎn)信息,瀏覽器端進行的頁面跳轉(zhuǎn) ;
response.sendRedirect("重定向地址");轉(zhuǎn)發(fā)和重定向?qū)Ρ?/p>
| 區(qū)別 | 轉(zhuǎn)發(fā) | 重定向 |
|---|---|---|
| 地址欄 | 不變 | 變化 |
| 跳轉(zhuǎn) | 服務(wù)端跳轉(zhuǎn) | 瀏覽器端跳轉(zhuǎn) |
| 請求次數(shù) | 一次 | 兩次 |
| 域中數(shù)據(jù) | 不會丟失 |
丟失 |
關(guān)于“JavaEE的Servlet核心API如何使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“JavaEE的Servlet核心API如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:JavaEE的Servlet核心API如何使用
瀏覽地址:http://chinadenli.net/article20/jpcico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、小程序開發(fā)、App設(shè)計、網(wǎng)站營銷、網(wǎng)頁設(shè)計公司、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)