HttpServletRequest和HttpServletResponse(1)

2023-12-11 07:48

本文主要是介绍HttpServletRequest和HttpServletResponse(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

.1.7 HttpServletRequest和HttpServletResponse(1)

在javax.servlet.http包中,定义了HttpServletRequest和HttpServletResponse这两个接口。这两个接口分别继承自
javax.servlet.ServletRequest和javax.servlet.ServletResponse接口。在HttpServletRequest接口中新增的常用方法如下:

public java.lang.String getContextPath()

返回请求URI中表示请求上下文的部分,上下文路径是请求URI的开始部分。上下文路径总是以斜杠(/)开头,但结束没有斜杠(/)。在默认(根)上下文中,这个方法返回空字符串""。例如,请求URI为“/sample/test”,调用该方法返回路径为“/sample”。

public Cookie[] getCookies()

返回客户端在此次请求中发送的所有Cookie对象。

public java.lang.String getHeader(java.lang.String name)

返回名字为name的请求报头的值。如果请求中没有包含指定名字的报头,这个方法返回null。

public java.util.Enumeration getHeaderNames()

返回此次请求中包含的所有报头名字的枚举集合。

public java.util.Enumeration getHeaders(java.lang.String name)

返回名字为name的请求报头所有的值的枚举集合。

public java.lang.String getMethod()

返回此次请求所使用的HTTP方法的名字,例如,GET、POST或PUT。

public java.lang.String getPathInfo()

返回与客户端发送的请求URL相联系的额外的路径信息。额外的路径信息是跟在Servlet的路径之后、查询字符串之前的路径,并以斜杠(/)字符开始。例如,假定在web.xml文件中MyServlet类映射的URL是:/myservlet/*,用户请求的URL是:http://localhost:8080/ ch02/myservlet/test,当我们在HttpServletRequest对象上调用getPathInfo()时,该方法将返回/test。如果没有额外的路径信息,getPathInfo()方法将返回null。

public java.lang.String getPathTranslated()

将额外的路径信息转换为真实的路径。例如,在上面的例子中假定ch02 Web应用程序位于D:/OpenSource/apache-tomcat-6.0.16/webapps/ch02目录,当用户请求http://localhost: 8080/ch02/myservlet/test时,在请求对象上调用getPathTranslated()方法将返回D:/OpenSource/apache-tomcat-6.0.16/webapps/ch02/test。

public java.lang.String getQueryString()

返回请求URL中在路径后的查询字符串。如果在URL中没有查询字符串,该方法返回null。例如,有如下的请求URL:

http://localhost:8080/ch02/logon.jsp?action=logon

调用getQueryString()方法将返回action=logon。

public java.lang.String getRequestURI()

返回请求URL中从主机名到查询字符串之间的部分。例如:

请求行         返回值
POST /some/path.html HTTP/1.1    /some/path.html
GET http://foo.bar/a.html HTTP/1.0   /a.html
HEAD /xyz?a=b HTTP/1.1     /xyz

 

public java.lang.StringBuffer getRequestURL()

重新构造客户端用于发起请求的URL。返回的URL包括了协议、服务器的名字、端口号和服务器的路径,但是不包括查询字符串参数。


要注意的是,如果请求使用RequestDispatcher.forward(ServletRequest, ServletResponse)方法被转发到另一个Servlet中,那么你在这个Servlet中调用getRequestURL(),得到的将是获取RequestDispatcher对象时使用的URL,而不是原始的请求URL。

public java.lang.String getServletPath()

返回请求URI中调用Servlet的部分。这部分的路径以斜杠(/)开始,包括了Servlet的名字或者路径,但是不包括额外的路径信息和查询字符串。例如,假定在web.xml文件中MyServlet类映射的URL是:/myservlet/*,用户请求的URL是:http://localhost:8080/ ch02/myservlet/test,当我们在HttpServletRequest对象上调用getServletPath ()时,该方法将返回/myservlet。如果用于处理请求的Servlet与URL样式“/*”相匹配,那么这个方法将返回空字符串("")。

public HttpSession getSession()

返回和此次请求相关联的Session,如果没有给客户端分配Session,则创建一个新的Session。

public HttpSession getSession(boolean create)

返回和此次请求相关联的Session,如果没有给客户端分配Session,而create参数为true,则创建一个新的Session。如果create参数为false,而此次请求没有一个有效的HttpSession,则返回null。

在HttpServletResponse接口中,新增的常用方法如下:

public void addCookie(Cookie cookie)

增加一个Cookie到响应中。这个方法可以被多次调用,用于设置多个Cookie。

public void addHeader(java.lang.String name, java.lang.String value)

 

2.1.7 HttpServletRequest和HttpServletResponse(2)

用给出的name和value,增加一个响应报头到响应中。

public boolean containsHeader(java.lang.String name)

判断以name为名字的响应报头是否已经设置。

public java.lang.String encodeRedirectURL(java.lang.String url)

使用Session ID对用于重定向的url进行编码,以便用于sendRedirect()方法中。如果该url不需要编码,则返回未改变的url。(关于这个方法的使用,请参见第5章)

public java.lang.String encodeURL(java.lang.String url)

使用Session ID对指定的url进行编码。如果该url不需要编码,则返回未改变的url。(关于这个方法的使用,请参见第5章)

public void sendError(int sc) throws java.io.IOException

使用参数sc表示的状态代码发送一个错误响应到客户端,同时清除缓存。如果响应已经被提交,这个方法将抛出IllegalStateException异常。

public void sendError(int sc, java.lang.String msg)
throws java.io.IOException

使用指定的状态代码发送一个错误响应到客户端。服务器默认会创建一个包含了指定消息的服务器端错误页面作为响应,设置内容类型为“text/html”。如果Web应用程序已经声明了对应于指定状态代码的错误页面,则服务器会将这个页面发送给客户端,而不理会参数msg指定的错误消息。如果响应已经被提交,这个方法将抛出IllegalStateException异常。

public void sendRedirect(java.lang.String location)
throws java.io.IOException

发送一个临时的重定向响应到客户端,让客户端访问新的URL。如果指定的位置是相对URL,Servlet容器在发送响应到客户端之前,必须将相对URL转换为绝对URL。如果响应已经被提交,这个方法将抛出IllegalStateException异常。

public void setHeader(java.lang.String name, java.lang.String value)

用给出的name和value,设置一个响应报头。如果这个报头已经被设置,新的值将覆盖先前的值。

public void setStatus(int sc)

为响应设置状态代码。

此外,在HttpServletResponse接口中,还定义了一组整型的静态常量,用于表示HTTP错误代码,这些错误代码对应于HTTP/1.1中的错误代码。关于这些错误代码常量,请参看HttpServletResponse接口的API文档。

要想更好地理解HttpServletRequest和HttpServletResponse的使用,应该结合HTTP协议来看,彼此对照。HTTP协议的介绍参见附录B。

这篇关于HttpServletRequest和HttpServletResponse(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/479965

相关文章

Http请求和HttpServletRequest中获得对应参数

Enumeration<String> key = request.getParameterNames();  这个能获取到所有前端传过来的参数;其实这篇转来的文字可以深入理解下 servlet 的知识, Http请求 GET /firstSample/hello HTTP/1.1 请求行Host: localhost:8080 请求头Conne

HttpServletRequest接口中常用方法

HttpServletRequest接口继承于ServletRequest接口。HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过HttpServletRequest提供的方法可以获得客户端请求的所有信息。 例如,客户端请求的地址是:http://www.xinjun.com/abou

HttpServletRequest-request.getRequestedSessionId()和request.getSession().getId()的区分

今天在做一个权限登录的时候,发现有一个很类似,但是还是很区别的。今天好好的学习一下。 首先看一下这个介绍session的文章,复习一下。 JavaWeb学习总结(十二)——Session request.getSession().getId() 服务端创建,一个浏览器独占一个session对象(默认情况下), HttpServletRequest中有: HttpSession getSe

HttpServletRequest介绍和头信息的获取

文章目录 1 Tomcat请求响应2 HttpServletRequest基本功能2.1 HttpServletRequest的功能2.2 request获取请求头数据2.3 request获取请求相关的其它方法 1 Tomcat请求响应 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象,re

Servlet--HttpServletRequest接口,HttpServletResponse接口

HttpServletRequest接口 定义 public interface HttpServletRequest extends ServletRequest; 用来处理一个对 Servlet 的 HTTP 格式的请求信息。 方法 1、getAuthType public String getAuthType(); 返回这个请求的身份验证模式。 2、getCookies pub

处理HttpServletRequest 请求参数与参数转换为实体类

此文是自己作记录用,适用于新手参考。资深程序员请绕道 当前端传递大批量参数时,后端需要进行获取参数与赋值给对应实体类 (当然这种情况为 前端传递的 参数名 与 实体类中的参数名称不相同。如果传递的参数名与实体类参数相同,由于SpringMCV的特性,则Controller层的对应的方法,直接用 实体类去接收,会自行赋值)   代码如下 :   import net.sf.json.JSO

Java HttpServletRequest详解

javaweb学习总结(十)——HttpServletRequest对象(一) 一、HttpServletRequest介绍   HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 二、Request常用方法 2.1、获得客户机信息   getR

【servlet】HttpServletResponse HttpServletRequest

HttpServletRequest  获取参数  request.getParameter("");作用域对象 request.setAttribute(key ,value); HttpServletResponse 输出客户端文本内容 response.getWriter(); 中文乱码问题,设置输出编码 resp.setHea

JavaWeb ——servlet学习4之HttpServletRequest、HttpServletResponse和资源下载

JavaWeb ——servlet学习4之HttpServletRequest、HttpServletResponse和资源下载 Web 服务器收到客户端的 http 请求,会针对每一次请求,分别创建一个用于 代表请求的 request 对象和 代表响应的 response 对象。request 和 response 对象代表请求和响应:获取客户端数据,需要通过request 对象; 向客户端输

HttpServletRequest(请求)对象

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。 获得客户机信息     getRequestURL():返回客户端发出请求时的完整URL。     getRequestURI():返回请求行中的资源名部分(要请求哪个资源)。     g