servlet学习
一直想學(xué)習(xí)java web開(kāi)發(fā),但不知道從何著手,查閱了相關(guān)資料后決定從servlet開(kāi)始學(xué)習(xí)。
一個(gè)最基本的 Java Web 項(xiàng)目所需的 jar 包只需要一個(gè) servlet-api.jar,共有 2 個(gè)包,分別是 javax.servlet 和 javax.servlet.http。
Java Web 項(xiàng)目還需要一個(gè)非常重要的配置文件 web.xml,關(guān)于servlet部分的內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" ????"http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> ????<servlet> ????????<servlet-name>hello_world</servlet-name> ????????<servlet-class>demo.HelloServlet</servlet-class> ????????<load-on-startup>1</load-on-startup> ????</servlet> ????<servlet-mapping> ????????<servlet-name>hello_world</servlet-name> ????????<url-pattern>/hello</url-pattern> ????</servlet-mapping>? </web-app> javax.servlet 和 javax.servlet.http 這兩個(gè)包總共加起來(lái)也不過(guò)是三十四個(gè)接口和類。需要熟悉如下幾個(gè)接口:- HttpServlet
- ServetConfig
- ServletContext
- Filter
- FilterConfig
- FilterChain
- RequestDispatcher
- HttpServletRequest
- HttpServletResponse
- HttpSession
- 一些 Listenser 類
Servlet接口有五個(gè)方法,其用法如:public void init(ServletConfig config)throws ServletException
public void service(ServletRequest request,ServletResponse response)throws ServletException,java.io.IOException
public void destroy()
public ServletConfig getServletConfig()
public java.lang.String getServletInfo()
在Servlet的五個(gè)方法中,init,service和destroy是servlet的生命周期方法。在servlet類已經(jīng)初始化之后,init方法將會(huì)被servlet容器所調(diào)用。servlet容器只調(diào)用一次,以此表明servlet已經(jīng)被加載進(jìn)服務(wù)中。init方法必須在servlet可以接受任何請(qǐng)求之前成功運(yùn)行完畢。一個(gè)servlet程序員可以通過(guò)覆蓋這個(gè)方法來(lái)寫(xiě)那些僅僅只要運(yùn)行一次的初始化代碼,例如加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),值初始化等等。在其他情況下,這個(gè)方法通常是留空的。servlet容器為servlet請(qǐng)求調(diào)用它的service方法。servlet容器傳遞一個(gè)javax.servlet.ServletRequest對(duì)象和javax.servlet.ServletResponse對(duì)象。ServletRequest對(duì)象包括客戶端的HTTP請(qǐng)求信息,而ServletResponse對(duì)象封裝servlet的響應(yīng)。在servlet的生命周期中,service方法將會(huì)給調(diào)用多次。當(dāng)從服務(wù)中移除一個(gè)servlet實(shí)例的時(shí)候,servlet容器調(diào)用destroy方法。這通常發(fā)生在servlet容器正在被關(guān)閉或者servlet容器需要一些空閑內(nèi)存的時(shí)候。僅僅在所有servlet線程的service方法已經(jīng)退出或者超時(shí)淘汰的時(shí)候,這個(gè)方法才被調(diào)用。service方法從ServletResponse對(duì)象獲得java.io.PrintWriter實(shí)例,并發(fā)送字符串到瀏覽器。
轉(zhuǎn)載于:https://www.cnblogs.com/fangfangJY/p/3867948.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
- 上一篇: 《javascript高级程序设计》第六
- 下一篇: 【SAS BASE】SCAN函数