Servlet
Servlet执行原理
1.用户通过浏览器访问并发出请求,服务器对请求的url路径进行解析。
2.访问web.xml文件,查找文件里的<url-pattern>标签里的内容。
3.通过<url-pattern>标签内容找到<servlet-class>里的servlet文件的路径。
4..tomcat将该servlet文件的字节码文件加载进内存,并创建其对象。
5.调用service方法来提供服务。
Servlet生命周期三个重要方法
1.init() 初始化并创建servlet的方法,执行一次
1.1 指定servlet的创建时机:通过添加web.xml文件里的属性<load-on-starup>数据值</load-on-starup>,数据值为负数表示servlet在客户端浏览器第一次访问时创建,为正数表示在服务器启动时创建。
1.2 servlet只能被创建一次,故存在线程安全性问题,为了消除这个问题而又不影响servlet的执行效率,程序员尽量不要定义在servlet中定义成员变量,假如要定义,也需要将成员变量的值设置为固定值。
2.sevice() 提供服务的方法,执行1到多次
3.destroy() 销毁servlet的方法,只会执行一次,在服务器正常关闭时执行。先执行destroy()方法,然后服务器停止。
Servlet3.0配置的方式
在Servlet的实现类上面添加注解 如:@WebServlet("/bb")
注:访问时需要根据在/bb前面加上自己设置的项目虚拟目录
Servlet的体系结构
1.abstract class GenericServlet implements Servlet
2.abstract class HttpServlet extends GenericServlet
注:常用的是HttpServlet类,一般只重写其中的doGet和doPost方法。
注解的匹配规则
A.基础语法(定义数组的多个匹配规则)
如:@WebServlet({"/*","/test04/xx"})
B.常见的写法
a. "/*" 访问: http://127.0.0.1:8080/day13 就可以访问,其中day13是虚拟目录
b. "/xx" 访问: http://127.0.0.1:8080/day13/xx
c. "/xx/heihei" 访问: http://127.0.0.1:8080/day13/xx/heihei
d. "*.do" 访问: http://127.0.0.1:8080/day13/jiji.do 这里的jiji可以任意写