Servlet 入门
目錄
一、Servlet 介紹
二、Servlet 入門
1、創建JavaEE Web項目
2、定義類,實現 Servlet 接口
3、實現接口中的抽象方法
4、配置 Servlet
三、Servlet 分析
1、原理分析
2、Servlet 中的生命周期
四、注解配置(不用web.xml配置)
五、Servlet 體系結構
1、GenericServlet 類
2、HttpServlet 類
一、Servlet 介紹
Servlet(server applet)是運行在服務器端的小程序,其實就是一個接口,定義了 Java 類被瀏覽器訪問到(Tomcat 識別)的規則,我們可以自己定義一個類,來實現 Servlet 接口,復寫方法
二、Servlet 入門
1、創建JavaEE Web項目
具體參見上一篇博客
2、定義類,實現 Servlet 接口
public class myServlet implements Servle{}3、實現接口中的抽象方法
public class myServlet implements Servlet {/*** 初始化方法* 在Servlet被創建是執行,只會執行一次*/@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("初始化");}/*** 獲取ServletConfig配置對象* @return*/@Overridepublic ServletConfig getServletConfig() {return null;}/*** 提供服務的方法* 每次Servlet被訪問的時候執行,可執行多次* @return*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("Hello Servlet!");}/*** 獲取Servlet信息,如作者、版本等* @return*/@Overridepublic String getServletInfo() {return null;}/*** 銷毀方法* 在服務器正常關閉的時候執行,執行一次*/@Overridepublic void destroy() {System.out.println("銷毀");} }4、配置 Servlet
在 web.xml 文件里面進行配置,在根標簽里面加入如下配置
<!--配置Servlet --> <servlet><servlet-name>oneStar</servlet-name><servlet-class>web.servlet.myServlet</servlet-class> </servlet><servlet-mapping><servlet-name>oneStar</servlet-name><url-pattern>/oneStar</url-pattern> </servlet-mapping>三、Servlet 分析
1、原理分析
2、Servlet 中的生命周期
- 被創建:執行 init 方法,只執行一次
- 默認情況下,第一次被訪問時,Servlet 被創建
- 可以配置執行 Servlet 的創建時機,可在<servlet>標簽中配置
- 配置第一次被訪問時創建:<load-on-startup>標簽配置為負數(默認為-1)
- 配置服務器啟動時被創建:<load-on-startup>標簽配置0或正數
- init 方法只執行一次,說明一個 Servlet 在內存中只存在一個對象,Servlet 是單例的
- 多個用戶同時訪問時,可能存在線程安全問題,所以盡量不要在Servlet中定義成員變量,即使定義了也不要對值進行修改
- 每次訪問 Servlet 時,Servlet 方法都會被調用一次
- Servlet 銷毀時執行,只有服務器正常關閉時,才會執行 destory 方法
四、注解配置(不用web.xml配置)
在 Servlet3.0 以上的版本中,支持使用注解配置,可以不需要 web.xml 文件,在類上使用 @webServlet 注解進行配置,其實質就是配置WebServlet.class 文件里面的 urlPatterns 參數,urlPatterns 是一個 String 類型的數組,使用該數組來配置訪問路徑,該配置有多種方法:
- 一個 Servlet 可以定義一個訪問路徑:@WebServlet("/oneStar")
- 一個 Servlet 可以定義一個數組(多個)訪問路徑:@WebServlet({"/oneStar","/twoStar","/threeStar"})
- 支持多層路徑:@WebServlet("/user/oneStar")
- 使用通配(任何目錄):@WebServlet("/*")
- 使用通配(帶后綴):@WebServlet("*.do")
這樣就可以啟動項目了
五、Servlet 體系結構
Servlet?是一個接口,定義了 Java 類被瀏覽器訪問到的很多方法,我們可以直接去實現這些方法,但一般不這樣做,而是使用 Servlet 接口的抽象子類 GenericServlet 類或者?GenericServlet 的抽象子類 HttpServlet 類,實現 service() 方法。
1、GenericServlet 類
將 Servlet 接口中其他的方法做了默認空實現,只將 service() 方法作為抽象,因此可以直接繼承?GenericServlet,實現 service() 方法即可,而在實際開發當中,往往會在 service() 方法中判斷請求的方式,判斷是 get 方法還是 post 方法,是一個比較繁瑣的過程,因此可以使用?HttpServlet 類來簡化了這一過程。
2、HttpServlet 類
HttpServlet 類是對 HTTP 協議的封裝,簡化了操作
- 定義類繼承?HttpServlet
- 重寫 doGet 或 doPost 方法
?
總結
以上是生活随笔為你收集整理的Servlet 入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个仿携程的移动端网站
- 下一篇: hive1.2.1实战操作电影大数据!