Servlet (一)
了解Servlet
定义:运行在服务器端的小程序。本质上就是接口,定义java类被浏览器访问(tomcat识别)的规则(接口)。
服务器资源分为动态资源和静态资源,资源可以被浏览器请求访问。
快速入门
(前提:下载配置jdk,java路径,配置好maven,下载配置tomcat)
1. 创建javaEE
2. 定义一个类,实现servlet接口
3. 实现接口中抽象方法
4. 配置servlet
<!--配置servlet--> (在web.xml)<servlet><servlet-name>demo</servlet-name><servlet-class>nuc.ss.text.Servletexpe1</servlet-class></servlet><servlet-mapping><servlet-name>demo</servlet-name><url-pattern>/demo</url-pattern></servlet-mapping>
执行原理
1. 当服务器接受客户端浏览器请求后,解析url路径,获取访问的Servlet资源路径
2. 查找 web.xml是否有<url-pattern>标签内容与url路径一致
3. 找到<servlet-class>全类名 ,即<servlet-class>nuc.ss.text.Servletexpe1</servlet-class>
4. tomcat将全类名的字节码加载进内存并创建对象
5. 调用方法
方法
生命周期
1. init初始化:在被创建时执行,只执行一次
2. servce提供服务方法:在每一次Servlet被访问时执行,执行多次
3. destroy销毁:在服务器正常关闭时执行,执行一次
4. ServletConfig获取配置对象
5. getServletInfo获取信息
生命周期详解
1.创建
指定Servlet创建时机
通过修改web.xml的<servlet>标签下的配置
由于只执行一次,说明Servlet在内存只存在一个对象,是单例。
多个用户同时访问时存在线程安全问题,若加锁性能太差,因此尽量不要在Servlet中定义成员变量,即使定义了也不要对其修改值
<load-on-startup> -5 </load-on-startup>
值为负数:第一次被访问时创建
值为0或正整数:服务器启动时创建
2.提供服务
3.被销毁
只有服务器正常关闭时才执行destroy方法
Servlet注解
每写一个Servlet就要配置一个,若进行大型项目则选择注解方式
1. 创建java ee(7.0以上),选择Servlet版本,不创建web.xml
2. 定义一个类实现Servlet接口
3. 复写方法
4. 在类上使用 @WebServlet注解
@WebServlet(urlPatterns='/demo')
也可以写成 @WebServlet("/demo")
IDEA与Tomcat相关配置
IDEA会给每个Tomcat部署的项目配置一份文件:
项目启动后查看 Using CATALINA_BASE:后的文件路径
断点调试: