Servlet

2017-11-21  本文已影响0人  wmydev

1. sun 提供的一种动态web资源开发技术.本质上就是一段java小程序.可以将Servlet加入到Servlet容器中运行.

2.写一个类实现sun公司定义的Servlet接口 将写好的类配置到tomcat中的web应用的web.xml中,(配置对外访问路径)

3.Servlet 的调用过程/生命周期

4.Servlet 的继承结构
Servlet接口 -- 定义了Servlet应该具有的基 本方法

GenericServlet --通用基本Servlet实现,对于不常用的方法在这个实现类中进行了基本的实现,对于Service设计为了抽象 方法,需要子类去实现

HttpServlet --在通用Servlet的基础上基于HTTP协议进行了进一步的强化:实现了GenericServlet中的Service方 法,判断当前的请求方式,调用对应到doXXX方法,这样一来我们开发Servlet的过程中只需继承HttpServlet ,覆盖具体要处理的doXXX方法 就可以根据不同的请求方式实现不同的处理.一般不要覆盖父类中的Service方法只要覆盖doGet/doPost就可以了

5.Servlet 的细节

~由于*的引入,有可能一个路径被多个urlpartten匹配,这是优先级判断条件如下: 哪个最像找哪个
*.后缀永远匹配级最低



ServletContext -- 代表当前web应用

1.做为域对象可以在整个web应用范围内共享数据

域对象:在一个可以被看见的范围内共享数据用到对象

作用范围:整个web应用范围内共享数据

生命周期:当服务器启动web应用加载后创建出ServletContext对象后,域产生。当web应用被移除出容器或服务器关闭,随着web应用 的销毁域销毁。
void setAttribute(String,Object);
Object getAttribute(String);
void removeAttribute(String);

2.用来获取web应用的初始化参数

请求参数 parameter --- 浏览器发送过来的请求中的参数信息

初始化参数 initparameter --- 在web.xml中为Servlet或

ServletContext配置的初始化时带有的基本参数 域属性 attribute --- 四大作用于中存取的键值对

3.实现Servlet的转发 重定向 : 302+Location

请求转发 : 服务器内不进行资源流转

请求转发是一次请求一次响应实现资源流转.请求重定向两次请求两次响应.

4.加载资源文件 在Servlet中读取资源文件时:

有找不到资源
如果写相对路径和绝对路径,由于路径将会相对于程序启动的目录--在web环境下,就是tomcat启动的目录即tomcat/bin--所

如果写硬盘路径,可以找到资源,但是只要一换发布环境,这个硬盘路径很可能是错误的,同样不行.

为了解决这样的问题ServletContext提供了getRealPath方法,在这个方法中传入一个路径,这个方法的底层会在传入的路径 前拼接当前web应用的硬盘路径从而得到当前资源的硬盘路径,这种方式即使换了发布环境,方法的底层也能得到正确的web应用的路径从而永 远都是正确的资源的路径

this.getServletContext().getRealPath("config.properties")

如果在非Servlet环境下要读取资源文件时可以采用类加载器加载文件的方式读取资源

Service.class.getClassLoader().getResource("../../../config.properties").getPath()


1025413-3cdd88d48cc4f9e8.jpg
上一篇 下一篇

猜你喜欢

热点阅读