黑马程序员技术交流社区
标题:
【石家庄校区】Servlet
[打印本页]
作者:
奔跑的蜗牛006
时间:
2018-5-21 15:15
标题:
【石家庄校区】Servlet
本帖最后由 奔跑的蜗牛006 于 2018-5-21 15:16 编辑
Servlet
Servlet的实现关系:
编写类继承 HttpServlet 继承 GenericServlet 实现 Servlet(接口);
请求方式为GET: doget();
post: dopost();dopost方法里再调用一次doget(req,res);
web导包:
WEB-INF--->lib;不用BulidPath;
▲▲
Servlet的生命周期:(面试)
Servelt对象有且只创建一次;单例
init :第一次访问时,服务器会创建Servlet对象,init方法执行仅一次;
service :每次刷新页面都会执行;
destroy :当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.
任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.
在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).
当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
Servlet的相关配置:
启动时创建Servlet:
▲▲
优化配置:
有一些资源需要初始化很耗时;
第一次访问的时候初始化资源(耗时)以后访问都无需再初始化,
把这个耗时的操作放到服务器启动的时候;
在web.xml中在<servlet></servlet>标签中配置:
<load-on-startup>2</load-on-startup>
▲▲
url-pattern的配置方式:
1.完全路径匹配 : 以/开始
2.目录匹配 : 以/开始,以*结束;http://port/projectName/asda/adsa
3.扩展名匹配 : 不能以 / 开始,以*开始的;*.do
错误的写法: / *.do
完全路径匹配 > 目录匹配 > 扩展名匹配
相对路径:
需要明确双方的位置
绝对路径:
从根路径出发,一般带上工程名./day09/Demo1;http://localhost:8080 协议可以省略
▲▲ServletContext:
服务器启动时创建
范围:整个web项目
域对象
ServletContext作为域对象存储数据:ServletContext在不同的类之间进行数据的共享;
setAttribute(String key,Object value)
Object getAttribute(String key)
removeAttribute(String key)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2