黑马程序员技术交流社区
标题:
【石家庄校区】Servlet
[打印本页]
作者:
巴拉巴拉x
时间:
2018-5-21 10:26
标题:
【石家庄校区】Servlet
本帖最后由 巴拉巴拉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):移除数据.
作用域
整个web工程
什么时候创建
服务器启动的时候,tomcat服务器为每个web项目创建一个单独的ServletContext对象
什么时候销毁
服务器关闭的时候,或者项目从服务器中移除的时候
作用
用来获得一些全局的初始化参数
用来获得文件的MIME的类型:文件上传和下载的时候用
作为域对象来存取数据
用来读取web项目下的一些文件
ServletConfig类
功能:对象用来获取配置文件的内容.web.xml文件的内容.
Enumeration getInitParameters();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2