Servlet原理介绍
Servelt:server applet
本质就是一个接口(规则),定义了java类被服务器访问到(Tomcat识别)的规则。
我们必须写一个类来实现servlet的方法。
快速入门步骤
1.创建JavaEE(企业级)的项目
2.写一个类实现servlet的方法
3.配置servlet
其中配置servlet在web.xml中配置
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>web.servlet.ServletDemo1</servlet-class>//全类名
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>//虚拟路径名
</servlet-mapping>
执行原理
1.当服务器接收到浏览器请求,解析URL路径,获取访问Servlet的资源路径
2.查找web.xml,是否有对应的 <url-pattern>
3.如果有找到对应的全类名
4.Tomcat会将对应的类的字节码文件加载进内存,并创建其对象,并调用方法(因为对象一开始并没有被创建出来,需要通过反射机制)
生命周期
主要是init service destory 三个方法
其中init启动分为两种
load-on-startup中进行配置: 1.第一次访问时候被创建(值为负数)2.服务器启动时候被创建(值为正数)
因为servlet的init只会执行一次,因此是单例模式。当多用户访问时候会产生线程不安全。解决:尽量在servlet中不要定义成员变量,多定义局部变量。即使定义了成员变量也不要对其赋值。
配置
Servlet3.0之后可以不使用web.xml进行配置,可以在类上使用注解@WebServlet进行配置。
例如:@WebServlet( “虚拟路径”)