servlet 知识总结
1、servlet是java编写的服务端程序(server applet),servlet需要交给服务器运行
2、Servlet技术基于request-response编写模型
(1)客户端发送请求至服务端
(2)服务端启动并调用servlet,servlet根据客户端请求生成响应内容并将其传给服务器
(3)服务器将响应返回客户端
3.如何实现Servlet
(1)创建web项目
(2)创建一个类,并实现Servlet接口(javax.servlet.Servlet)
(3)注册servlet,即交给服务器运行
在/WEB-INF/web.xml进行相应的配置
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.xxx.servlet.TestServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>zhangsan</span></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
4.注册servlet的注意事项:
(1)<servlet-class>标签,确定servlet的位置,必须是servlet类的完整路径名
(2)<servlet-name>标签,为servlet定义一个别名,必须唯一
(3)<init-param>为servlet定义初始化参数,可以根据ServletConfig获得
(4)<load-on-startup>标记servlet容器是否在启动的时候就加载这个servlet,当值为0或者为正数时,表示容器在应用启动的时候就加载此servlet;
当值为负数或者为配置此标签时,该servlet在第一次被客户端访问时加载。正数的值越小,启动该servlet的优先级越高。
(5)<servlet-mapping>Servlet的映射,定义servlet的访问路径
映射路径的四种配置方式:
1)完全匹配 例如:/a/b/demoServlet
2)不完全匹配 例如:/a/*
3)通配符匹配 例如:*.action
4)缺省匹配 用“/”表示
注意:
映射路径只能以/或*开头;
/和*.不能同时存在;
/和/*均表示任意,但/*的优先级比/ 高;
只有*.才表示通配符。
5.Servlet的生命周期
(1)init初始化
对应的方法为:void init(ServletConfig config)
在servlet第一次被加载进内存时,被执行,仅执行一次。
1)当该servlet在web.xml中配置<load-on-startup>,且值不为负数时,在servlet容器启动的时候执行
2)当该servlet在web.xml中未配置<load-on-startup>,或者虽配置但值为负数,则在客户端第一次访问时执行
(2)service服务
对应的方法为:void servcie(ServletRequest reuest, ServletResponse response)
客户端的访问该servlet时,都会执行该方法
(3)destroy销毁
servlet在正常关闭的时候,执行,仅执行一次。