Servlet是一個標準的純Java類,只不過該類是HttpServlet類的一個子類,因此Servlet(即Java類)的對象可以使用或重寫HttpServlet類中的所有方法
一.創建Servlet
步驟如下:New---Servlet---取一個Servlet類名---next---一般將Servlet/JspMapping URL設置爲:/Servlet類名(其他地方不需要修改)---finish
注意:1.一般將所有寫好的Servlet類以包的形式保存,並且將這個包存放在Web路徑下的src目錄下;從而當某個Servlet類被編譯時,就會自動在"Web工程名/web-inf/classes"目錄下產生一個與其對應的.class文件,並且該.classes文件也是以包的形式存放,包名與存放Servlet類的包名同名
2.web.xml文件中的兩個重要標記
<servlet>
<servlet-name>Servlet類名</servlet-name>
<servlet-class>Servlet類經過編譯後的.class文件名(必須帶上包名)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet類名</servlet-name>
<url-pattern>servlet頁面被加載時的地址</url-pattern>
</servlet-mapping>
3.編譯後的Servlet只被裝載一次,因此當源程序重新編譯後,需要重啓Tomcat服務器
4.Servlet類的修飾符必須爲public
5.由於Servlet中寫的全部是純Java代碼,因此要在Servlet中調用Html或Jsp或JavaScript代碼時,必須將他們都寫在out.println(......)中
6.在Servlet類中獲取out對象的方法:PrintWriter out=response.getWriter();
7.在Servlet中調用對象session時,要首先聲明session,即用session所屬的類HttpSession來對它進行定義,即:
HttpSession session=request.getSession();
二.Servlet對象常用的方法
1.public void init(ServletConfig config) throws ServletException
服務器初始化Servlet
一旦某個Servlet被初始化後,它將被保存在內存中;因此該方法只需要被調用一次以後,Servlet就可以被多次調用
2.public void service(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException
每當用戶需要加載某個Servlet頁面時,該方法就會被調用執行
request:用來封裝用戶的請求信息
response:用來響應用戶的請求
在該方法中要實現的功能也可以在doGet()或doPost()中實現
3.public destroy()
該方法用於消滅某個Servlet對象
4.protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
與
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
這兩個方法的功能與service方法的功能相同,一般只要把具體邏輯放在doGet和doPost方法的任一個中,然後在另一個方法裏
調用這個方法即可,也就是說這兩個方法中的邏輯功能都是相同的
三.Servlet,Jsp,Html頁面之間的跳轉
1.Servlet頁面---Jsp頁面或Html頁面
A.要設置從Servlet頁面跳轉到哪個Jsp頁面或Html頁面,必須在Servlet類的doGet或doPost方法中加入以下語句:
getServletConfig().getServletContext().getRequestDispatcher("/Html或Jsp頁面文件中").forward(HttpServletRequest request,HttpServletResponse response);
也可以通過JavaScript中的window.location.href="./Html或Jsp頁面地址"實現
B.在Html頁面文件中不能獲取Servlet或Jsp頁面文件中的某個表單控件或對象的值;但是,Jsp頁面文件或Servlet頁面文件中可以互相獲取
2.Jsp頁面或Html頁面---Servlet頁面
此時Jsp文件或Html文件的表單中的action應爲Servlet頁面的加載地址,即web.xml文件中的<url-pattern>值
格式:action="地址名"或"./地址名"