servelt
今日内容
- servlet概念
- servlet步骤
- servelt配置
- servelt执行流程
- servelt生命周期
第一部分:
概念
Servlet 就是运行在服务端的Java小程序, 实质就是java代码,通过java的API 动态的向客户端输出内容
(是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源)
注意: Servlet 技术是JavaWeb中最核心的组件 每个servelt是唯一的,通常设置不同的功能
Servlet主要功能:
1,动态生成HTML文档
2,转发请求给同Web中的另一个Servlet组件
3,转发请求至其他Web应用中的Servlet组件
4.读取以及写入Cookie
5.访问其他服务器资源(数据库 or 基于java的应用程序)
总结一下就是:接受请求数据-处理请求-完成响应
步骤
1.创建JavaEE项目
2.定义一个类,实现Servlet接口
3.实现接口中的抽象方法
public class Demo implements Servlet {
public void init(ServletConfig servletConfig) throws ServletException {
}
public ServletConfig getServletConfig() {
return null;
}
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
}
public String getServletInfo() {
return null;
}
public void destroy() {
}
}
4.配置Servlet
- 2.0版本在web.xml中配置
- 3.0直接使用注解
执行原理
- 当服务器会解析请求URL路径,获取访问的Servlet的资源路径
- 查找是否有对应的url-pattern内容。
- 如果有,则在找到对应的类
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
总结:找路径-进内存-调用方法
生命周期
五部分:注册,初始化,服务,销毁,退出
3个生命周期方法:init,service,destroy
1.注册
2.初始化—Servelt对象
- init()方法
会在Servlet 被加载并实例化的以后执行
第一次访问Servlet时执行只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的
注意: 由于只存在一个对象,在多个浏览器访问时,即多个用户同时访问时,可能存在线程安全问题
解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值
又或者只是定义一个局部变量
注意:
可以设置servelt的创建时间
2.5版本
在web.xml文件中增加一栏 数字 数字为正数servlet对象在服务器启动 时就创建 数字为负数servlet对象在服务器启动 后就创建
3.0版本
在注解中添加 loadOnStartup= 数字
3.服务—Service()方法
- service()——>doGet() doPost()
该方法负责响应用户请求,为客户提供相应的服务
servelt类调用几次 , 就执行几次
客户端请求到达时,servlet容器会调用servlet实例的service方法对请求进行处理
4.销毁
- destory
server面板中停止(服务器正常关闭)
服务器关闭时,Servlet被销毁
而destory方法会在Sevlet被系统回收时执行(即在被销毁前执行)
5.退出
问题:
1)Servlet何时创建
默认第一次访问servlet时创建该对象
2)Servlet何时销毁
服务器关闭servlet就销毁了
3)每次访问必然执行的方法
service(ServletRequest req, ServletResponse res)方法