要了解servlet技術須要掌握幾點:servlet是什麼,它又能作什麼,實現什麼樣的功能,如何實現這個功能,在具體項目中是如何運用等;總結下面幾個知識點:html
一、什麼是servlet;java
二、servlet能作什麼;web
三、servlet工做機理是什麼(servlet生命週期);數組
四、servlet經常使用類及接口有哪些;tomcat
五、servlet具體如何在項目中運用;服務器
我的學習總結以下:session
一、首先servlet是一個java類;按照自身規範編寫的java類,由服務器端調用和執行;app
二、servlet的功能:用於處理客戶端請求,即HTTP請求,並返回一個響應;jsp
三、servlet部署在容器裏,由容器管理它的生命週期;大概一下幾個階段:學習
(1)裝載servlet:servlet的裝載是動態進行的;
(2)建立servlet實例:servlet是一個java類,在使用以前須要建立一個實例;
(3)初始化:經過調用init()方法進行;
(4)服務:初始化完後就能夠進行服務,處理業務需求,經過調用service()方法進行;
(5)銷燬:經過調用servlet的destroy()方法進行銷燬servlet實例;
四、servlet經常使用接口:
(1)servlet實現相關的接口:Servlet,GenericServlet,HttpServlet
方法:init(),destroy(),service(ServletReqeust request,ServletResponse response),doGet(),doPost()
getServletConfig(),獲取配置相關信息對象的引用;
HttpServlet類是針對使用http協議的web服務器的servlet類;
public Interface Servlet;
public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable;
public abstract class HttpServlet extends GenericServlet impements java.io.Serializable;
(2)servlet配置相關:ServletConfig
方法:getServletContext();獲取上下文對象的引用
(3)請求響應相關:ServletRequest,ServletResponse,HttpServletRequest,HttpServletResponse
request:
方法:
getCookies();返回一個數組
getSession()
getParameter(String name)獲取請求中名爲name的參數值
response:
方法:
sendRedirect(String location)把響應發送到另外一個頁面或servlet進行處理;
encodeURL(String url);重寫URL;
(4)回話跟蹤:HttpSession接口
一個session能夠經過Cookie或重寫URL來維持;
方法:
getId();獲取當前session標誌符;
(5)Servlet上下文:ServletContext接口
在服務器上使用session對象維持與單個用戶的狀態,當爲多個用戶的web應用維持一個狀態時,則應用servlet環境;servletContext對象表示一組Servlet共享的資源;
方法:
getAttribute(String name);獲取名爲name的屬性;
setSttribute(String name,Object object);
getContext(String uripath);返回給定的uripath的應用的servlet上下文;
(6)Servlet協做:RequestDispatcher接口
方法:
forword(ServletReqeust request,ServletResponse response);把請求轉發到服務器上的另外一個資源(servlet,jsp,html)
五、servlet運用:
Servlet的HelloWorld實例:
(1)建立HelloWorldServlet:
1 package com.jdpdev.ch1; 2 3 import java.io.*; 4 5 import javax.servlet.*; 6 import javax.servlet.http.*; 7 8 9 public class HelloWorldServlet extends HttpServlet { 10 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 11 response.setContentType("text/html;charset=gb2312"); 12 PrintWriter out = response.getWriter(); 13 out.println("<html>"); 14 out.println("<head>"); 15 out.println("<title>Hello World</title>"); 16 out.println("</head>"); 17 out.println("<body >"); 18 out.println("<hr>"); 19 out.println("hello world<br>"); 20 out.println(request.getCookies()); 21 out.println("</body></html>"); 22 23 } 24 public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 25 doGet(request,response); 26 } 27 28 }
(2)在web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Welcome to tomcat</display-name> <description> HellloWorld </description> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.jdpdev.ch1.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>