Servlet

来源:互联网 发布:交换机端口介绍 编辑:程序博客网 时间:2024/06/03 17:40

1.什么是servlet?

Servlet是运行在服务端的java小程序,是sun公司提供的一套规范,用来处理客户端的请求,响应给浏览器的动态资源。

Servlet是JavaWeb的三大组件之一(Servlet,Filter,Listener),且最为重要。

Servle的作用?用来处理客户端发送过来的请求,并作出相应。

主要任务有:获取请求参数,处理请求,完成响应。


servlet的规范要求:Servlet程序需要编写实现类,并在web.xml进行配置。

实现步骤:创建类实现Servlet接口,覆盖尚未实现的方法-----service,在web.xml进行servlet的配置;

但是在实际开发中我们一般不直接去实现Servlet接口,因为那样需要覆盖的方法太多,我们一般创建类继承HttpServlet

实现步骤:创建类继承HttpServle类,覆盖doGet和doPost,在web.xml中进行servlet的配置


创建类,继承HttpServlet,复写doGet和doPost方法


编写配置文件web.xml


使用Request接受请求参数常用的方法:

方法名                                                                                                                                      

String getParameter(String name)

获得指定参数名对应的值。如果没有返回null,如果只有多个获得第一个

String[ ] getParameterValues(String name)

获得指定参数名对应的所有值

Map<String ,String[ ]>  getParameterMap()获得所有的请求参数。key为参数名,value为key对应的所有值

setCharaterEncoding(String env)

设置请求体的编码,用于解决POST请求参数乱码问题


     Servlet的生命周期:

Servlet规定,所有的servlet必须实现javax.servlet.Servlet接口

(1)Servlet接口中的方法

1)init(ServletConfig config)

何时执行:servlet对象创建的时候执行

ServletConfig : 代表的是该servlet对象的配置信息

 

2)service(ServletRequest request,ServletResponse response)

何时执行:每次请求都会执行

ServletRequest :代表请求 认为ServletRequest 内部封装的是 http请求的信息

ServletResponse :代表响应 认为要封装的是响应的信息

 

3)destroy()

何时执行:servlet销毁的时候执行

 1.第一次调用时,将执行初始化方法:init(ServletConfig)

2.每一次调用,都将执行servile(ServletRequest ,ServletResponse)方法

3.服务器关闭时或者项目移除时:destroy()方法

JavaEE规范中提供Servlet接口实现类:

GenericServlet:通用servlet实现,没有实现service

HttpServlet:与Http协议有关的实现。实现service方法,完成与http协议有关的操作。

request.getMethod()获得请求方式(get post)

如果是get,将调用doGet()

如果是post,将调用doPost()

生命周期:就是一个对象从创建到销毁的过程。

Servlet的生命周期:Servlet从创建到销毁的过程

何时创建:用户第一次访问Servlet创建Servlet的实例(单实例)

何时销毁:当项目从服务器移除或者关闭服务器的时候移除


servlet的配置问题



其中url——pattern的配置方式

1)完全匹配 访问的资源与配置的资源完全相同才能访问到

<url-pattern>/quickStratServlet</url-pattern>

2)目录匹配 格式:/虚拟的目录../*   *代表任意

<url-pattern>/aaa/bbb/ccc/*</url-pattern>

3)扩展名匹配 格式:*.扩展名

<url-pattern>*.abcd</url-pattern>

   注意:第二种和第三种不能混合使用

 /aaa/bbb/*.abcd(错误的)

SerletContext对象

1.什么是ServletContext对象

ServletContext代表一个web应用的环境(上下文),servletContext对象内部封装是该web应用的信息,ServletContext对象,一个web应用只能有一个。


ServletContext对象的生命周期?

创建:该web应用被加载(服务器启动或发布web应用(前提,服务器启动状 态))

销毁:web应用被卸载(服务器关闭,移除该web应用)

1.怎样获得ServletContext对象

1)ServletContext servletContext = config.getServletContext();

2)ServletContext servletContext = this.getServletContext();

ServletContext的作用?

1.获得web应用全局的初始化的参数

web.xml中配置初始化参数


通过context对象获得参数


2.获得web应用中任何资源的绝对路径

方法 String Path = context.getRealPath(相对于web应用的相对地址)

3.ServletContet是一个域对象

什么是域对象?什么是域?

存储数据的区域就是域对象

ServletContext域对象的作用范围:整个web应用(所有的web资源都可以随意向servletcontext域中存取对象,数据可以共享)

域对象的通用方法:

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttribute(String name)

 




原创粉丝点击