Servlet
2016-03-19 13:19
316 查看
一、Servlet
是什么: servlet是一个小应用程序
作用: 处理从客户端发送的请求及服务端的响应。
开发步骤:
b) 打开web.xml文件,做如何配置
c)部署到服务器上
d)打开浏览器,通过 http://localhost:8080/day08_00_servlet/abc 访问.
Servlet的执行调用过程(清楚)
servlet的生命周期(牢记)
public void init(ServletConfig) ; 初始化方法
public service(ServletRequest,ServletResponse) ; 服务方法
public destroy() ; 销毁方法
l 默认情况下,servlet对象在第一次请求的时候调用构造函数创建, 创建之后自动调用带参的init方法,然后调用service方法.destroy方法在停止服务器或者停止应用的时候调用。整个过程中,init方法和destroy方法只会调用一次,而service方法会反复调用。
l 可以通过配置web.xml文件来改变创建servlet的时机.配置如下(就是可以不用客户访问的时候直接就创建,也就是控制servlet里面的创建时间)
此时在服务器启动的时候就创建对象并进行初始化了.此Servlet对象在服务器停止或者应用停止时才死亡.
url配置(掌握)(就是配置地址,在网页上输入的地址)
i. 就是配置这个
两种:
l 配置优先级: 精确匹配 > 以/开头的匹配 > 以*开头的匹配
l 如果配置成/ 那么就是一个缺省的servlet,此Servlet处理所有找不到匹配路径的url
servlet的创建问题(掌握)
创建一个servlet有3中方式:
1) 采用实现servlet接口, (不推荐)
2) 采用继承GenericServlet类( 不推荐)
3) 采用继承HttpServlet(推荐)
serlvet的线程安全(明白)
明确: Servlet的设计是一个单实例多线程。
线程安全要求将变量创建成一个局部变量,而不要创建成实例变量.
二、servletConfig
作用:就是拿取servlet的相关配置.也就是拿去web.xml里面的配置信息(这个配置信息都是一样的,所以无论哪个方法得到都是一样)
如何获取ServletConfig对象.
a:: 通过init方法获取 (是有参的init{super.init(config) this.config= config})
b:通过servlet实例的getServletConfig()方法获取
3. 拿取配置参数:(掌握)
a. 拿取单个配置参数
Servlet代码:
b. 拿取所有的参数:
servlet代码:
三、ServletContext (非常重要)
生命周期很长
每个web应用都有一个唯一的servletContext对象.
在每个应用加载的时候,服务器就会创建servletContext对象。
ServletContext对象是一个域对象(领域)
获得servletContext的方式
应用
url的写法注意:
a) 客户端跳转:(由浏览器发出的请求) 一定需要在地址前加应用的名称
b) 服务端跳转: (由服务端发出的请求) 不需要在地址前加应用的名称
应用1
a) 作为域对象,里面存取的是键值对,可以拿
b) 可以修改,所以一般保存的是公用数据
c) Cookie就是用来保存私有数据
d) 生命周期长,所以里面保存东西少点,
应用
1) 实现数据共享
2) 获取全局配置参数
3) 请求转发
a) 拿取请求转发器,然后转发
4) 获取资源文件
三种方式优缺点:
a): 采用servletContext对象获得.
优点: 任意文件,任意路径都可获得
缺点: 必须在web环境下
b): 采用resourceBundle获得
优点: 非web环境下
缺点: 只能获取properties文件
c): 采用类加载器获得
优点: 任意路径,任意文件
是什么: servlet是一个小应用程序
作用: 处理从客户端发送的请求及服务端的响应。
开发步骤:
a)写一个类ServletDemo1,继承
javax.servlet.GenericServlet类,实现 service方法
b) 打开web.xml文件,做如何配置
<!-- sevlet标签是用来定义一个Servert对象的 --> <servlet> <servlet-name>demo</servlet-name> <servlet-calss>cn.JA_K56c.servlet.ServletDemo1</servlet-class> <!-- ServletDemo1 demo = new ServletDemo1() --> </servlet> <!-- servlet-mapping的作用是定义一个映射关系,就是访问的方式--> <servlet-mapping> <servlet-name>demo</servlet-name> <url-pattern>abc</url-pattern> </servlet-mapping>
c)部署到服务器上
d)打开浏览器,通过 http://localhost:8080/day08_00_servlet/abc 访问.
Servlet的执行调用过程(清楚)
servlet的生命周期(牢记)
public void init(ServletConfig) ; 初始化方法
public service(ServletRequest,ServletResponse) ; 服务方法
public destroy() ; 销毁方法
l 默认情况下,servlet对象在第一次请求的时候调用构造函数创建, 创建之后自动调用带参的init方法,然后调用service方法.destroy方法在停止服务器或者停止应用的时候调用。整个过程中,init方法和destroy方法只会调用一次,而service方法会反复调用。
l 可以通过配置web.xml文件来改变创建servlet的时机.配置如下(就是可以不用客户访问的时候直接就创建,也就是控制servlet里面的创建时间)
此时在服务器启动的时候就创建对象并进行初始化了.此Servlet对象在服务器停止或者应用停止时才死亡.
url配置(掌握)(就是配置地址,在网页上输入的地址)
i. 就是配置这个
两种:
l 配置优先级: 精确匹配 > 以/开头的匹配 > 以*开头的匹配
l 如果配置成/ 那么就是一个缺省的servlet,此Servlet处理所有找不到匹配路径的url
servlet的创建问题(掌握)
创建一个servlet有3中方式:
1) 采用实现servlet接口, (不推荐)
2) 采用继承GenericServlet类( 不推荐)
3) 采用继承HttpServlet(推荐)
serlvet的线程安全(明白)
明确: Servlet的设计是一个单实例多线程。
线程安全要求将变量创建成一个局部变量,而不要创建成实例变量.
二、servletConfig
作用:就是拿取servlet的相关配置.也就是拿去web.xml里面的配置信息(这个配置信息都是一样的,所以无论哪个方法得到都是一样)
如何获取ServletConfig对象.
a:: 通过init方法获取 (是有参的init{super.init(config) this.config= config})
b:通过servlet实例的getServletConfig()方法获取
3. 拿取配置参数:(掌握)
a. 拿取单个配置参数
Servlet代码:
b. 拿取所有的参数:
servlet代码:
三、ServletContext (非常重要)
生命周期很长
每个web应用都有一个唯一的servletContext对象.
在每个应用加载的时候,服务器就会创建servletContext对象。
ServletContext对象是一个域对象(领域)
获得servletContext的方式
应用
url的写法注意:
a) 客户端跳转:(由浏览器发出的请求) 一定需要在地址前加应用的名称
b) 服务端跳转: (由服务端发出的请求) 不需要在地址前加应用的名称
应用1
a) 作为域对象,里面存取的是键值对,可以拿
b) 可以修改,所以一般保存的是公用数据
c) Cookie就是用来保存私有数据
d) 生命周期长,所以里面保存东西少点,
应用
1) 实现数据共享
2) 获取全局配置参数
3) 请求转发
a) 拿取请求转发器,然后转发
4) 获取资源文件
三种方式优缺点:
a): 采用servletContext对象获得.
优点: 任意文件,任意路径都可获得
缺点: 必须在web环境下
b): 采用resourceBundle获得
优点: 非web环境下
缺点: 只能获取properties文件
c): 采用类加载器获得
优点: 任意路径,任意文件
相关文章推荐
- Leetcode: 6. ZigZag Conversion(JAVA)
- hdoj 小Q系列故事——电梯里的爱情 4505 (模拟)水
- shell编程:自动格式化硬盘并挂载
- andorid与ros互操作的关键点
- iOS应用架构谈 网络层设计方案
- Tomcat Server组成
- CSS3伪类和伪元素的特性和区别
- C++多态的实现机制
- java并发机制的底层实现原理
- LeetCode-70-Climbing Stairs(动态规划)-Easy
- Hdu 3966-Aragorn's Story LCT,动态树
- 实验总结
- 免费馅饼——G
- 磁盘和文件系统管理(1)
- JavaScript 事件模型
- java @Override错误
- Fragment+FragmentTabHost
- R中级绘图
- JavaScript和jQuery的事件
- 基类析构函数为虚函数的作用