本帖最后由 巴拉巴拉x 于 2018-5-21 10:27 编辑
Servlet
- 根据指定路径服务器执行service方法,这个service方法是参数为ServletRequest 对象和 ServletResponse对象的那个方法
- 创建一个类继承HttpServlet类
- 最好实现Serializable接口
- 代码一般都写到doGet方法,然后doPost方法调用doGet方法.
- web引入jar包不用buidpath,自动引入
- 传统的服务器是分为三层
- 第一层:web/Controller层/web层
- 第二层:业务逻辑处理层,service层.
- dao层:data access object:数据访问层
Serlet 生命周期
- 生命周期
- 就是一个对象从创建到销毁的过程
- Servlet生命周期:Servlet从创建到销毁的过程
- 何时创建:用户第一次访问Servlet时创建Servlet的实例
- 何时销毁:当项目从服务器中移除,或者关闭服务器的时候.
- 用户第一次访问Servlet的时候,服务器就会创建一个Servlet实例,那么Servlet中init方法就会执行,任何一次请求服务器都会创建一个新的线程访问Servlet中的Servlet方法,在service方法内部根据请求的方式的不同调用doXXX方法,当Servlet从服务器中移除,或者关闭服务器,Servlet就会调用destroy方法.销毁Servlet实例,在整个生命周期中Servlet有且只有一个.也就是说Servlet是单例的.
- 由于第一次创建Servlet实例的时候需要耗费一些时间,所以在服务器启动的时候就创建这个对象,然后用户再来访问的时候就可以直接调用service的方法,优化用户体验,
- Servlet的相关配置
- 用这个配置来把Servlet实例的创建加载到服务器启动时
- 在web.xml中的< servlet></servlet>标签中配置
- <load-on-startup>2</load-on-startup>
- 中间的数字越小,优先级越高.数字只能是正整数.
- 以后有这种情况都要这样配置
- 即第一次访问的时候初始化资源(耗时),以后访问都无需在初始化,就把这个耗时的操作放到服务器启动的时候.
- 标签<url-pattern>的配置方式
- 有三种
- 完全路径匹配
- 目录匹配
- 扩展名匹配
- 任何形式都不能以 / * 开始
- 优先级
- 请求和响应是一一对应的,一次请求有且只能有一个响应.
开发中路径的编写
- 相对路径:都是需要找位置相对关系,不能以 / 开始
- 绝对路径:不需要找相对位置,必须以 / 开头
- 绝对路径中分为客户端路径和服务端路径
- 客户端路径一定要加工程名
- 服务器端路径不需要加工程名
登陆成功后响应定时跳转
- 使用http协议中的refresh(定时刷新,定时跳转)功能
- add方法和set方法的区别
- add
- addHeader ---> 针对一个key对应多个value的响应头
- addDateHeader(String name, long date)
- addIntHeader(string name, int value)
- set
- setHeader ---> 针对一个key 对应 一个value的响应头.(一般使用这一种)
- 统计登陆成功的次数
- ServletContext类
- 功能:ServletContext对象用来存取数据,存的数据都有一定的作用的范围,这种对象成为域对象.
- setAttribute(String name, Object object):用来向ServletContext中存入数据
- getAttribute(String name):用来从ServletContext中获取数据
- removeAttribute(String name):移除数据.
- 作用域
- 什么时候创建
- 服务器启动的时候,tomcat服务器为每个web项目创建一个单独的ServletContext对象
- 什么时候销毁
- 作用
- 用来获得一些全局的初始化参数
- 用来获得文件的MIME的类型:文件上传和下载的时候用
- 作为域对象来存取数据
- 用来读取web项目下的一些文件
- ServletConfig类
- 功能:对象用来获取配置文件的内容.web.xml文件的内容.
- Enumeration getInitParameters();
|
|