Servlet是服务器端的java应用程序,最初是由SUN公司推出的一种替代传统CGI应用程序的技术。每个用户请求被激活成单个进程中的线程,而不同于CGI程序创建单独的进程。这样,服务器端处理请求的开销将明显降低。
Servlet需要实现javax.servlet.Servlet接口,其中javax.servlet.GenericServlet实现了Servlet接口,javax.servlet.http.HttpServlet继承自GenericServlet。
一、Servlet生命周期
Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。
初始阶段:
Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。Servlet容器创建一个servlet对象,再调用servlet对象的init方法进行初始化。
运行阶段:
当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。
销毁阶段:
当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。
在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数。
二、servlet 初始化参数
可通过项目web.xml设置指定servlet的初始化参数。在相应<servlet>标签下新建标签<init-param>,再建一对用<param-name>和<param-value>包裹好的键值对。这样在servlet中,可通过getInitParameter()函数读取设置好的参数值。
eg:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>com.raymond.servlets.servlet1</servlet-class>
<init-param>
<param-name>jdk_version</param-name>
<param-value>1.6.0_30</param-value>
</init-param>
</servlet>
三、Servlet获取表单参数
2,Enumeration<String> e = request.getParameterNames();接收所有的参数的名称,并且存在一个Enumeration里
3,parameterValue = request.getParameter(parameterName); 循环这句话,获取所有的参数的值