Servlet(为动态而生)
1、概念:
server applet 运行在服务器端的小程序,里边是一些后端的逻辑代码
Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则
2、使用步骤:
(1)集成Tomcat服务器到IDEA
(2)创建一个JavaEE项目
选择Java Enterprise,记得勾选web application
(3)创建类实现Servlet接口中的抽象方法 implements Servlet
(直接implements httpservlet比较方便,重写doGet和doPost方法)
(4)web.xml配置Servlet:资源路径和java类的映射
<servlet>
<servlet-name>demo</servlet-name> //给资源起个名
<servlet-class>cn.sweetie.servlet.Demo1</servlet-class> //类全包路径名
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>//资源名
<url-pattern>/demo</url-pattern>//访问路径映射这个资源
</servlet-mapping>
3、Servlet执行原理
(1)浏览器通过url找到服务主机里的web服务器Tomcat下部署好的web项目
(2)查找web.xml文件或者@WebServlet注解,找到对应的Servlet资源,拿到资源的全包路径名
(3)加载对应的字节码文件进入内存,Class.forName();
(4)生成对象,new Instance();
(5)调用service()方法。
4、Servlet接口中的生命周期方法
init():只在Servlet对象被创建后执行一次(默认在第一次访问url时创建)
还可以自己设置调用时机,web.xml中的标签中
*第一次访问时(默认):负数(默认-1)
*服务器启动时调用:0或正数
service():提供服务的方法,Servlet每一次被访问时,都会执行
destroy():Servlet销毁之前执行,一般用于释放资源。在服务器正常关闭时,执行一次。
可以看出,一个Servlet在内存中只有一个对象。
多个用户同时访问会有线程安全问题。
解决:尽量不要定义成员变量
5、注解配置(方便)
使用步骤:
(1)创建JavaEE项目时,选择Servlet3.0以上版本(可以不使用web.xml配置
(2)创建类,实现servlet接口的抽象方法
(3)在类上添加@WebServlet注解,进行配置
@WebServlet(“url访问路径”)
6、Servlet体系结构
Servlet是个接口,它底下有两个抽象实现类,GenericServlet 和 HttpServlet
继承这两个实现类,只用实现service()方法就好了,其他四个方法都被做了空实现
*我们一般使用HttpServlet(封装了http协议)
需要复写里边的doGet()方法和doPost()方法