Servlet的四个重要对象

来源:互联网 发布:张艺兴而立24淘宝 编辑:程序博客网 时间:2024/05/16 08:37

 HttpServletRequest  请求对象:获取请求信息

 HttpServletResponse 响应对象: 设置响应对象

 ServletConfig对象    servlet配置对象

 ServletContext对象; servlet的上下文对象


1,HttpServletRequest对象请求对象。获取请求信息。

请求行:request.getMethod()   request.getRequestURI/getRequestURL()  request.getProtocol();

请求头: request.getHeader("name")    request.getHeaderNames()  

实体内容: request.getInputStream()

 

获取参数数据:(GETPOST)

request.getParameter("name")  一个值的参数

request.getParameterValues("name"); 多个值的参数

request.getParameterNames()    所有参数


2,HttpServletResponse对象:响应对象。设置响应信息。

响应行: response.setStatus();

响应头: response.setHeader("name","value")

实体内容:

(PrintWriter) response.getWriter().writer(); 字符内容

  (OutputStreamresponse.getOutputStream().writer();  字节内容



3,ServletConfig对象

主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

ServletConfigAPI

java.lang.String getInitParameter(java.lang.String name)  根据参数名获取参数值

java.util.Enumeration getInitParameterNames()    获取所有参数

    ServletContext getServletContext()     得到servlet上下文对象

java.lang.String getServletName()       得到servlet的名称


4,ServletContext对象:

叫做Servlet的上下文对象。表示一个当前的web应用环境。一个web应用中只有一ServletContext对象。

Sun公司设计1)创建ServletContext对象  ServletContext  context = new ServletContext() 2)创建ServletConfig对象   ServetConfig config = new ServletConfig();                                              config.setServletContxt(context);class  ServletConfig{ServletContext context;public ServletContext getServletContxt(){return contxt;}} public void init( ServletConfig config ){得到ServletConfig对象从ServletConfig对象中得到ServletContext对象SerlvetContext context = config.getServletContext();}

java.lang.String getContextPath()   --得到当前web应用的路径

 

java.lang.String getInitParameter(java.lang.String name)  --得到web应用的初始化参数

java.util.Enumeration getInitParameterNames()  

 

void setAttribute(java.lang.String name, java.lang.Object object) --域对象有关的方法

java.lang.Object getAttribute(java.lang.String name)  

void removeAttribute(java.lang.String name)  

 

RequestDispatcher getRequestDispatcher(java.lang.String path)   --转发(类似于重定向)

 

java.lang.String getRealPath(java.lang.String path)     --得到web应用的资源文件

java.io.InputStream getResourceAsStream(java.lang.String path)  

 

5域对象有关的方法

域对象:作用是用于保存数据,获取数据。可以在不同的动态资源之间共享数据

 


可以使用域对象共享数据,好处:可以共享任何类型的数据!!!!!

 

ServletContext就是一个域对象!!!!

 

保存数据:void setAttribute(java.lang.String name, java.lang.Object object)

获取数据: java.lang.Object getAttribute(java.lang.String name)  

删除数据: void removeAttribute(java.lang.String name)  

 

ServletContext域对象:作用范围在整个web应用中有效!!!

 

所有域对象:

HttpServletRequet 域对象

ServletContext域对象

HttpSession 域对象

PageContext域对象

 

6 转发

 RequestDispatcher getRequestDispatcher(java.lang.String path)

 

1)转发

 a)地址栏不会改变

 b)转发只能转发到当前web应用内的资源

c)可以在转发过程中,可以把数据保存到request域对象中

 

2)重定向

a)地址栏会改变,变成重定向到地址。

b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。

c)不能再重定向的过程,把数据保存到request中。

 

结论: 如果要使用request域对象进行数据共享,只能用转发技术!!!

 

 





0 0