Java-HttpServletRequest
//继承了ServletRequest接口,给servlet提供Request请求信息,servlet 容器会创建以后HttpServletRequest对象 //并把它作为一个参数给service函数 public interface HttpServletRequest extends ServletRequest { /** * String identifier for Basic authentication. Value "BASIC" */ public static final String BASIC_AUTH = "BASIC"; /** * String identifier for Form authentication. Value "FORM" */ public static final String FORM_AUTH = "FORM"; /** * String identifier for Client Certificate authentication. Value "CLIENT_CERT" */ public static final String CLIENT_CERT_AUTH = "CLIENT_CERT"; /** * String identifier for Digest authentication. Value "DIGEST" */ public static final String DIGEST_AUTH = "DIGEST"; /** * Returns the name of the authentication scheme used to protect * the servlet. All servlet containers support basic, form and client * certificate authentication, and may additionally support digest * authentication. * If the servlet is not authenticated <code>null</code> is returned. * <p>Same as the value of the CGI variable AUTH_TYPE. */ //返回验证符,BASIC_AUTH、FORM_AUTH、 CLIENT_CERT_AUTH、 DIGEST_AUTH public String getAuthType(); /** * Returns an array containing all of the <code>Cookie</code> * objects the client sent with this request. * This method returns <code>null</code> if no cookies were sent. * @return an array of all the <code>Cookies</code> * included with this request, or <code>null</code> * if the request has no cookies */ //返回一个包含所有cookie的数组 public Cookie[] getCookies(); /** * Returns the value of the specified request header * as a <code>long</code> value that represents a * <code>Date</code> object. Use this method with * headers that contain dates, such as * <code>If-Modified-Since</code>. * <p>The date is returned as * the number of milliseconds since January 1, 1970 GMT. * The header name is case insensitive. * <p>If the request did not have a header of the * specified name, this method returns -1. If the header * can't be converted to a date, the method throws * an <code>IllegalArgumentException</code>. * @param name a <code>String</code> specifying the * name of the header * @return a <code>long</code> valuerepresenting the date specified in the header expressed as the number of milliseconds since January 1, 1970 GMT, * or -1 if the named header was not included with the */ //返回name的时间请求头部,没有值返回-1 public long getDateHeader(String name); /** * Returns the value of the specified request header * as a <code>String</code>. If the request did not include a header * of the specified name, this method returns <code>null</code>. * If there are multiple headers with the same name, this method * returns the first head in the request. * The header name is case insensitive. You can use * this method with any request header. * @param name a <code>String</code> specifying the header name * @return a <code>String</code> containing the value of the requested * header, or <code>null</code>if the request does not have a header of that name */ //返回头部name的信息 public String getHeader(String name); /** * Returns all the values of the specified request header * as an <code>Enumeration</code> of <code>String</code> objects. * <p>Some headers, such as <code>Accept-Language</code> can be sent * by clients as several headers each with a different value rather than * sending the header as a comma separated list. * <p>If the request did not include any headers * of the specified name, this method returns an empty * <code>Enumeration</code>. * The header name is case insensitive. You can use * this method with any request header. * @param name a <code>String</code> specifying the * header name * @return an <code>Enumeration</code> containing * the values of the requested header. If * the request does not have any headers of * that name return an empty * enumeration. If * the container does not allow access to * header information, return null */ //返回头部name的枚举 public Enumeration getHeaders(String name); /** * Returns an enumeration of all the header names * this request contains. If the request has no * headers, this method returns an empty enumeration. * <p>Some servlet containers do not allow * servlets to access headers using this method, in * which case this method returns <code>null</code> * @return an enumeration of all the * header names sent with this * request; if the request has * no headers, an empty enumeration; * if the servlet container does not * allow servlets to use this method, */ //所有头部的name枚举 public Enumeration getHeaderNames(); /** * Returns the value of the specified request header * as an <code>int</code>. If the request does not have a header * of the specified name, this method returns -1. If the * header cannot be converted to an integer, this method * throws a <code>NumberFormatException</code>. * <p>The header name is case insensitive. * @param name a <code>String</code> specifying the name of a request header * @return an integer expressing the value of the request header or -1 if the request doesn't have a header of this name * @exception NumberFormatException If the header value can't be converted to an <code>int</code> */ //头部name作为int返回 public int getIntHeader(String name); /** * Returns the name of the HTTP method with which this * request was made, for example, GET, POST, or PUT. * Same as the value of the CGI variable REQUEST_METHOD. * @return a <code>String</code> * specifying the name * of the method with which * this request was made */ //返回方法get,post,put public String getMethod(); /** * Returns any extra path information associated with * the URL the client sent when it made this request. * The extra path information follows the servlet path * but precedes the query string and will start with * a "/" character. * <p>This method returns <code>null</code> if there * was no extra path information. * <p>Same as the value of the CGI variable PATH_INFO. * @return a <code>String</code>, decoded by the * web container, specifying * extra path information that comes * after the servlet path but before * the query string in the request URL; * or <code>null</code> if the URL does not have * any extra path information */ //返回路径信息 public String getPathInfo(); /** * but before the query string, and translates it to a real * path. Same as the value of the CGI variable PATH_TRANSLATED. * <p>If the URL does not have any extra path information, * this method returns <code>null</code> or the servlet container * cannot translate the virtual path to a real path for any reason * (such as when the web application is executed from an archive). * The web container does not decode this string. * @return a <code>String</code> specifying the * real path, or <code>null</code> if * the URL does not have any extra path * information */ // public String getPathTranslated(); /** * * Returns the portion of the request URI that indicates the context * of the request. The context path always comes first in a request * URI. The path starts with a "/" character but does not end with a "/" * character. For servlets in the default (root) context, this method * returns "". The container does not decode this string. * @return a <code>String</code> specifying the * portion of the request URI that indicates the context * of the request */ public String getContextPath(); /** * * Returns the query string that is contained in the request * URL after the path. This method returns <code>null</code> * if the URL does not have a query string. Same as the value * of the CGI variable QUERY_STRING. * @return a <code>String</code> containing the query * string or <code>null</code> if the URL * contains no query string. The value is not * decoded by the container. */ //请求中的参数值 public String getQueryString(); /** * Returns the login of the user making this request, if the * user has been authenticated, or <code>null</code> if the user * has not been authenticated. * Whether the user name is sent with each subsequent request * depends on the browser and type of authentication. Same as the * value of the CGI variable REMOTE_USER. * @return a <code>String</code> specifying the login * of the user making this request, or <code>null</code> * if the user login is not known */ //远程用户 public String getRemoteUser(); /** * Returns a boolean indicating whether the authenticated user is included * in the specified logical "role". Roles and role membership can be * defined using deployment descriptors. If the user has not been * authenticated, the method returns <code>false</code>. * @param role a <code>String</code> specifying the name * of the role * @return a <code>boolean</code> indicating whether * the user making this request belongs to a given role; * <code>false</code> if the user has not been * authenticated */ //用户角色判断 public boolean isUserInRole(String role); /** * Returns a <code>java.security.Principal</code> object containing * the name of the current authenticated user. If the user has not been * authenticated, the method returns <code>null</code>. * @return a <code>java.security.Principal</code> containing * the name of the user making this request; * <code>null</code> if the user has not been * authenticated */ // public java.security.Principal getUserPrincipal(); /** * Returns the session ID specified by the client. This may * not be the same as the ID of the current valid session * for this request. * If the client did not specify a session ID, this method returns * @return a <code>String</code> specifying the session * ID, or <code>null</code> if the request did * not specify a session ID * @see #isRequestedSessionIdValid */ //获得客户端请求产生的session id public String getRequestedSessionId(); /** * Returns the part of this request's URL from the protocol * name up to the query string in the first line of the HTTP request. * The web container does not decode this String. * For example: * <table summary="Examples of Returned Values"> * <tr align=left><th>First line of HTTP request </th> * <th> Returned Value</th> * <tr><td>POST /some/path.html HTTP/1.1<td><td>/some/path.html * <tr><td>GET http://foo.bar/a.html HTTP/1.0 * <td><td>/a.html * <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz * </table> * <p>To reconstruct an URL with a scheme and host, use * {@link HttpUtils#getRequestURL}. * @return a <code>String</code> containing * the part of the URL from the * protocol name up to the query string * @see HttpUtils#getRequestURL */ //获得请求URI public String getRequestURI(); /** * Reconstructs the URL the client used to make the request. * The returned URL contains a protocol, server name, port * number, and server path, but it does not include query * string parameters. * <p>Because this method returns a <code>StringBuffer</code>, * not a string, you can modify the URL easily, for example, * to append query parameters. * <p>This method is useful for creating redirect messages * and for reporting errors. * @return a <code>StringBuffer</code> object containing * the reconstructed URL */ //返回URL,不包括之前URL中的参数 public StringBuffer getRequestURL(); /** * Returns the part of this request's URL that calls * the servlet. This path starts with a "/" character * and includes either the servlet name or a path to * the servlet, but does not include any extra path * information or a query string. Same as the value of * the CGI variable SCRIPT_NAME. * <p>This method will return an empty string ("") if the * servlet used to process this request was matched using * the "/*" pattern. * @return a <code>String</code> containing * the name or path of the servlet being * called, as specified in the request URL, * decoded, or an empty string if the servlet * used to process the request is matched * using the "/*" pattern. * */ //获得URL中servlet路径部分 public String getServletPath(); /** * Returns the current <code>HttpSession</code> * associated with this request or, if there is no * current session and <code>create</code> is true, returns * a new session. * <p>If <code>create</code> is <code>false</code> * and the request has no valid <code>HttpSession</code>, * this method returns <code>null</code>. * <p>To make sure the session is properly maintained, * you must call this method before * the response is committed. If the container is using cookies * to maintain session integrity and is asked to create a new session * when the response is committed, an IllegalStateException is thrown. * @param create <code>true</code> to create * a new session for this request if necessary; * <code>false</code> to return <code>null</code> * if there's no current session * @return the <code>HttpSession</code> associated * with this request or <code>null</code> if * <code>create</code> is <code>false</code> * and the request has no valid session * @see #getSession() */ //获得httpSession,如果没有并且create为true则新建一个session public HttpSession getSession(boolean create); /** * Returns the current session associated with this request, * or if the request does not have a session, creates one. * @return the <code>HttpSession</code> associated * with this request * @see #getSession(boolean) */ //获得当前session,如果没有new public HttpSession getSession(); /** * Checks whether the requested session ID is still valid. * @return <code>true</code> if this * request has an id for a valid session * in the current session context; * <code>false</code> otherwise * @see #getRequestedSessionId * @see #getSession * @see HttpSessionContext */ //判断session id是否还有效 public boolean isRequestedSessionIdValid(); /** * Checks whether the requested session ID came in as a cookie. * @return <code>true</code> if the session ID * came in as a * cookie; otherwise, <code>false</code> * @see #getSession */ //session id 来自cookie public boolean isRequestedSessionIdFromCookie(); /** * Checks whether the requested session ID came in as part of the * request URL. * @return <code>true</code> if the session ID * came in as part of a URL; otherwise, * <code>false</code> * @see #getSession */ //session id 作为请求URL的一部分 public boolean isRequestedSessionIdFromURL(); /** * @deprecated As of Version 2.1 of the Java Servlet * API, use {@link #isRequestedSessionIdFromURL} * instead. */ public boolean isRequestedSessionIdFromUrl(); }
public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest { /** * Constructs a request object wrapping the given request. * @throws java.lang.IllegalArgumentException if the request is null */ public HttpServletRequestWrapper(HttpServletRequest request) { super(request); } private HttpServletRequest _getHttpServletRequest() { return (HttpServletRequest) super.getRequest(); } /** * The default behavior of this method is to return getAuthType() * on the wrapped request object. */ public String getAuthType() { return this._getHttpServletRequest().getAuthType(); } /** * The default behavior of this method is to return getCookies() * on the wrapped request object. */ public Cookie[] getCookies() { return this._getHttpServletRequest().getCookies(); } /** * The default behavior of this method is to return getDateHeader(String name) * on the wrapped request object. */ public long getDateHeader(String name) { return this._getHttpServletRequest().getDateHeader(name); } /** * The default behavior of this method is to return getHeader(String name) * on the wrapped request object. */ public String getHeader(String name) { return this._getHttpServletRequest().getHeader(name); } /** * The default behavior of this method is to return getHeaders(String name) * on the wrapped request object. */ public Enumeration getHeaders(String name) { return this._getHttpServletRequest().getHeaders(name); } /** * The default behavior of this method is to return getHeaderNames() * on the wrapped request object. */ public Enumeration getHeaderNames() { return this._getHttpServletRequest().getHeaderNames(); } /** * The default behavior of this method is to return getIntHeader(String name) * on the wrapped request object. */ public int getIntHeader(String name) { return this._getHttpServletRequest().getIntHeader(name); } /** * The default behavior of this method is to return getMethod() * on the wrapped request object. */ public String getMethod() { return this._getHttpServletRequest().getMethod(); } /** * The default behavior of this method is to return getPathInfo() * on the wrapped request object. */ public String getPathInfo() { return this._getHttpServletRequest().getPathInfo(); } /** * The default behavior of this method is to return getPathTranslated() * on the wrapped request object. */ public String getPathTranslated() { return this._getHttpServletRequest().getPathTranslated(); } /** * The default behavior of this method is to return getContextPath() * on the wrapped request object. */ public String getContextPath() { return this._getHttpServletRequest().getContextPath(); } /** * The default behavior of this method is to return getQueryString() * on the wrapped request object. */ public String getQueryString() { return this._getHttpServletRequest().getQueryString(); } /** * The default behavior of this method is to return getRemoteUser() * on the wrapped request object. */ public String getRemoteUser() { return this._getHttpServletRequest().getRemoteUser(); } /** * The default behavior of this method is to return isUserInRole(String role) * on the wrapped request object. */ public boolean isUserInRole(String role) { return this._getHttpServletRequest().isUserInRole(role); } /** * The default behavior of this method is to return getUserPrincipal() * on the wrapped request object. */ public java.security.Principal getUserPrincipal() { return this._getHttpServletRequest().getUserPrincipal(); } /** * The default behavior of this method is to return getRequestedSessionId() * on the wrapped request object. */ public String getRequestedSessionId() { return this._getHttpServletRequest().getRequestedSessionId(); } /** * The default behavior of this method is to return getRequestURI() * on the wrapped request object. */ public String getRequestURI() { return this._getHttpServletRequest().getRequestURI(); } /** * The default behavior of this method is to return getRequestURL() * on the wrapped request object. */ public StringBuffer getRequestURL() { return this._getHttpServletRequest().getRequestURL(); } /** * The default behavior of this method is to return getServletPath() * on the wrapped request object. */ public String getServletPath() { return this._getHttpServletRequest().getServletPath(); } /** * The default behavior of this method is to return getSession(boolean create) * on the wrapped request object. */ public HttpSession getSession(boolean create) { return this._getHttpServletRequest().getSession(create); } /** * The default behavior of this method is to return getSession() * on the wrapped request object. */ public HttpSession getSession() { return this._getHttpServletRequest().getSession(); } /** * The default behavior of this method is to return isRequestedSessionIdValid() * on the wrapped request object. */ public boolean isRequestedSessionIdValid() { return this._getHttpServletRequest().isRequestedSessionIdValid(); } /** * The default behavior of this method is to return isRequestedSessionIdFromCookie() * on the wrapped request object. */ public boolean isRequestedSessionIdFromCookie() { return this._getHttpServletRequest().isRequestedSessionIdFromCookie(); } /** * The default behavior of this method is to return isRequestedSessionIdFromURL() * on the wrapped request object. */ public boolean isRequestedSessionIdFromURL() { return this._getHttpServletRequest().isRequestedSessionIdFromURL(); } /** * The default behavior of this method is to return isRequestedSessionIdFromUrl() * on the wrapped request object. */ public boolean isRequestedSessionIdFromUrl() { return this._getHttpServletRequest().isRequestedSessionIdFromUrl(); } }
Java-HttpServletRequest的更多相关文章
- java HttpServletRequest和HttpServletResponse詳解
這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...
- Java HttpServletRequest中getAttribute()方法和getParameter()区别
一.ServletRequest接口 HttpServletRequest接口继承了ServletRequest接口,实现类通常代表一个实际的Http Request. Servlet容器负责创建一个 ...
- JAVA+HttpServletRequest文件上传
public Result fileUp(HttpServletRequest request) { RowsVo vo = new RowsVo(); MultipartHttpServletReq ...
- java HttpServletRequest 重复流读取
在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常. 在过滤器中通过流读取出用 ...
- java HttpServletRequest 重复流读取
在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常. 在过滤器中通过流读取出用 ...
- Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化
Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化 大段内容务必要替换转义换行符号1 提交务必使用utf编码,否则解码后的可能缺失,是web serv ...
- 前端安全系列(二):如何防止CSRF攻击?
前端安全系列(二):如何防止CSRF攻击? 背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XS ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java web学习总结(十) -------------------HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...
随机推荐
- Mac小技巧:快速查看指定应用程序的所有窗口
我们知道在Mac中快速在系统所有程序中切换得快捷键为: cmd + tab 不过有时我们需要快速查看某一个程序的所有窗口,那又该如何呢? 以下方法在MacOS 10.12中测试成功! Mac默认该功能 ...
- Android图表库MPAndroidChart(八)——饼状图的扩展:折线饼状图
Android图表库MPAndroidChart(八)--饼状图的扩展:折线饼状图 我们接着上文,饼状图的扩展,增加折现的说明,来看下我们要实现的效果 因为之前对MPAndroidChart的熟悉,所 ...
- 游戏引擎cocos2d-android使用大全
做手机游戏需要三个核心的类,即:SurfaceView,SurfaceHolder,Thread.帧数要在30帧左右是最好的. cocos2d游戏引擎 封装好的框架,可直接使用 cocos2d-and ...
- Swift中方法闭包参数不能省略括号的一种情况
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在swift中,如果方法的最后一个参数是一个闭包类型, ...
- 如何使用《DB 查询分析器》高效地生成旬报货运量数据
如何使用<DB 查询分析器>高效地生成旬报货运量数据 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 1 引言 中国本土 ...
- Android必知必会-获取View坐标和长宽的时机
如果移动端访问不佳,请访问–>Github版 背景 最近要实现一个功能,用到了一些属性动画,需要获取一些View的坐标信息,设计图如下: 这里我使用的是DialogFragment来实现的,可以 ...
- EBS各个应用简称
模块全称 Banking Center 模块简称 FPT 服务器目录 FPT_TOP Billing Connect CUE CUE_TOP CADView-3D DDD DDD_TOP CPG ...
- 剑指offer面试题4 替换空格(java)
注:利用java中stringBuilder,append,length方法很方便的解决字符串问题 /* * 剑指offer 替换空格 * xsf * */ /*开始替换空格的函数,length为原数 ...
- .so的封装调用
.so的创建和调用有一个特点,我们要知道.so的调用并不一定必须在Activity中进行,那么制作时也并不一定要在Activity中,但是,一旦.so制作成功,那么再调用时,调用的java类就必须跟制 ...
- shell入门之expr的使用
在expr中加减乘除的使用,脚本如下: #!/bin/sh #a test about expr v1=`expr 5 + 6` echo "$v1" echo `expr 3 + ...