你的位置:首页 > Java教程

[Java教程]基础知识回顾第一章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 stub39   }40 }

View Code

我们在来配置一个web.

 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.

注释1:

在浏览器中输入http://localhost:8080/servlet-test/helloworld?username=lp然后我们可以看到效果

2:Servlet的生命周期

我用一幅图来表示