一丶Servlet简介
Servlet是sun公司研发的一门用于开发动态web的技术。
二丶Servlet的生命周期
1. web容器(tomcat)会进行实例化,并调用init初始化方法
2. web服务器每次访问都会验证Servlet是否已经创建,如果是,后面每次访问时就不会再进行初始化了
3. 创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去
4. 当web应用程序被重启或关闭之前,会调用它的destroy方法
三丶Servlet的调用图
四丶Servlet在web.xml文件中的配置
主要是配置servlet和它的映射,当web容器访问Servlet时,会找与输入的URI匹配的url-pattern,匹配上以后会找这个servlet-mapping中的servlet-name标签中的名字,再按照这个名字去找匹配的servlet,当找到相同的servlet中的时候会找servlet-class中的全类名,按照这个全类名,就能在对应的资源目录下找到.class文件,就能调用对应的service
此外映射也可以是多匹配的,也就是说可以为一个Servlet匹配多个映射,映射到不同的URI,这样在浏览器端输入多个url也可以匹配到同一个Servlet
url-pattern里面可以写通配符 主要是/
url-pattern: *.do 以*.字符串的请求都可以访问 注:不要加/
url-pattern: /* 任意字符串都可以访问
url-pattern: /action/* 以/action开头的请求都可以访问
匹配规则:
优先级:从高到低
绝对匹配--> /开头匹配 --> 扩展名方式匹配
如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。
五丶Servlet线程安全问题
主要是用局部变量,不要用全局变量,因为Servlet是多线程的但是共享一个实例对象,一个实例对象的全局变量是相同的,但是局部变量都是各自独立的。