基礎知識回顧第一章servlet的學習和理解,第一章servlet
前言:關於servlet相信學過java的都不會陌生,我最近又把這些基礎知識整理一遍,便於自已能更好的理解ssm或者ssh,下面開始
1:Servlet接口
servlet有5個方法下面分別簡單的介紹每個方法的作用
1.1:public void init(ServletConfig config)
在servlet被實例化以後,servlet容器會調用init方法來初始化該對象,這個方法主要是完成在請求前的一些初始化工作,比喻調用數據庫連接,實例化對象等
1.2:public void service(ServletRequest req, ServletResponse res)
這個方法是一個核心的方法,我們主要的操作就在這個方法中進行,在收到客戶端請求以後然後進行業務的處理,把處理的信息響應給客戶端
1.3:public void destroy()
這個方法是當servlet實例被移除的時候會調用,釋放servlet中的資源,比喻關閉數據庫連接等可以理解為析構函數
1.4:public String getServletInfo()
這個方法主要是用於返回Servlet的描述信息,這些信息可以是Servlet的作者,版本、版權信息等
1.5:public ServletConfig getServletConfig()
主要返回容器調用init以後傳給servlet對象的ServletConfig對象
5個方法的作用說完了現在看下代碼

![]()
1 public class HelloWorldServlet implements Servlet{
2
3 private ServletConfig servletConfig;
4 //private ServletInfo
5 public void init(ServletConfig config) throws ServletException {
6 this.servletConfig=config;
7 }
8
9 public ServletConfig getServletConfig() {
10 return servletConfig;
11 }
12
13 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
14 String initReleName=this.servletConfig.getInitParameter("realName");
15 String servletName=this.servletConfig.getServletName();
16 String username=req.getParameter("username");
17
18 res.setContentType("text/html;charset=gb2312");//避免中文亂碼
19 //得到PrintWriter對象,
20 PrintWriter out=res.getWriter();
21 //向客戶端發送數據
22 out.println("Hello World " +username+"<br/>");
23 out.println("servlet名稱:"+servletName+"<br/>");
24 out.println("內聯的真實名稱:"+initReleName+"<br/>");
25 //關閉流
26 out.close();
27 }
28
29 /**
30 *用於返回Servlet的描述信息,這些信息可以是Servlet的作者,版本、版權信息等
31 */
32 public String getServletInfo() {
33 String str ="zhangsan";
34 return str;
35 }
36
37 public void destroy() {
38 // TODO Auto-generated method stub
39 }
40 }
View Code
我們在來配置一個web.xml

![]()
1 <!DOCTYPE web-app PUBLIC
2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3 "http://java.sun.com/dtd/web-app_2_3.dtd" >
4 <web-app>
5 <display-name>myservlet</display-name>
6 <description>這是我的第一個servlet</description>
7 <servlet>
8 <servlet-name>HelloWorldServlet</servlet-name>
9 <servlet-class>com.lp.servlet.HelloWorldServlet</servlet-class>
10 <init-param>
11 <param-name>realName</param-name>
12 <param-value>張三</param-value>
13 </init-param>
14 </servlet>
15 <servlet-mapping>
16 <servlet-name>HelloWorldServlet</servlet-name>
17 <url-pattern>/helloworld</url-pattern>
18 </servlet-mapping>
19 </web-app>
web.xml
注釋1:xml中的Servlet第一個表示Servlet-name表示名稱,為了和後面servlet-mapping中的Servlet-name進行關聯,然後在影射的時候就可以找到需要的Servlet類了
在浏覽器中輸入http://localhost:8080/servlet-test/helloworld?username=lp然後我們可以看到效果

2:Servlet的生命周期
我用一幅圖來表示
