`
guohf
  • 浏览: 414858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpServletRequest 方法详解

    博客分类:
  • java
 
阅读更多
		request.setCharacterEncoding("utf-8");//设置request编码方式
		request.getLocalAddr();//获取本地IP,即服务器IP
		request.getLocalName();//获取本地名称,即服务器名称
		request.getLocalPort();//获取本地端口号,即Tomcat端口号
		request.getLocale();//用户的语言环境
		request.getContextPath();//context路径
		request.getMethod();//GET还是POST
		request.getProtocol();//协议,http协议
		request.getQueryString();//查询字符串
		request.getRemoteAddr();//远程IP,即客户端IP
		request.getRemotePort();//远程端口,即客户端端口
		request.getRemoteUser();//远程用户
		request.getRequestedSessionId();//客户端的Session的ID
		request.getRequestURI();//用户请求的URL
		request.getScheme();//协议头,例如http
		request.getServerName();//服务器名称
		request.getServerPort();//服务器端口
		request.getServletPath();//Servlet路径

 

<%@page import="java.security.Principal"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.IOException"%>
<%@page import="java.io.PrintWriter"%>
<%@page import="com.thinkgem.jeesite.common.mapper.JsonMapper"%>
<%@page import="com.google.common.collect.Maps"%>
<%@page import="org.apache.commons.lang3.StringUtils"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%!
public void getReqInfo(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html; charset = utf-8");
    PrintWriter out = response.getWriter();
    println(out,"<ol>");
    //1. 获取请求方式、处理乱码问题
    String method = request.getMethod();

    //servletRequest中的方法
    request.setCharacterEncoding("utf-8");
    //1. 获取请求体的编码方式
    String characterEncoding = request.getCharacterEncoding();
    println(out,"getCharacterEncoding = " + characterEncoding);
    
    //2. get body length
    int contentLength = request.getContentLength();
    println(out,"getContentLength = " + contentLength);
    
    //3. MIME type
    String mimeType = request.getContentType();
    println(out,"getContentType = " + mimeType);
    
    //4. 接收请求的接口的 Internet Protocol (IP) 地址
    String ip = request.getLocalAddr();
    println(out,"getLocalAddr = " + ip);
    
    //5. 基于 Accept-Language 头,返回客户端将用来接受内容的首选 Locale 客户端语言环境
    Locale locale = request.getLocale();
    println(out,"getLocale = " + locale);
    
    //6. 所有的语言环境
    Enumeration<Locale> locales = request.getLocales();
    while(locales.hasMoreElements()){
        Locale temp = locales.nextElement();
        println(out,"\n Locales = " + temp);
    }
    
    //7. 接收请求的 Internet Protocol (IP) 接口的主机名
    String localName = request.getLocalName();
    println(out,"localName = " + localName);
    
    //8. 接收请求的接口的 Internet Protocol (IP) 端口号
    int localPort = request.getLocalPort();
    println(out,"localPort = " + localPort);
    
    //9. 返回请求使用的协议的名称和版本
    String protocol = request.getProtocol();
    println(out,"protocol = " + protocol);
    
    //10. 读取请求正文信息
    BufferedReader reader = request.getReader();
    println(out,"getReader = " + reader.toString());
    
    //11. 发送请求的客户端
    String remoteAddr = request.getRemoteAddr();
    println(out,"RemoteAddr = " + remoteAddr);
    
    //12. 发送请求的客户主机
    String remoteHost = request.getRemoteHost();
    println(out,"RemoteHost = " + remoteHost);
    
    //13. 发送请求的客户主机端口
    int remotePort = request.getRemotePort();
    println(out,"RemotePort = " + remotePort);
    
    //14. 返回用于发出此请求的方案名称,例如:http 、 https 、 ftp 
    String scheme = request.getScheme();
    println(out,"Scheme = " + scheme);
    
    //15. 返回请求被发送到的服务器的主机名。它是Host头值":"(如果有)之前的那部分的值。 或者解析服务器名称或服务器的IP地址
    String serverName = request.getServerName();
    println(out,"ServerName = " + serverName);
    
    //16. 返回请求被发送到的端口。他是"Host"头值":" (如果有)之后的那部分的值,或者接受客户端连接的服务器端口。
    int serverPort = request.getServerPort();
    println(out,"ServerPort = " + serverPort);
    
    //17. 返回一个boolean值,指示此请求是否是使用安全通道(比如HTTPS) 发出的。
    boolean secure = request.isSecure();
    println(out,"isSecure = " + secure);
    
    //以上方法为 ServletRequest 接口提供的
    
    
    //以下方法为 HttpServletRequest 接口提供的
    
    /*
     * 18. 返回用于保护servlet的验证方法名称。 所有的servlet容器都支持
     * basic、 form和client certificate验证, 并且可能还支持digest验证
     */
    String authType = request.getAuthType();
    println(out,"authType = " + authType);
    
    //19. getDateHeader ??
    request.getDateHeader("");
    
    //20. 返回请求头包含的所有头名称的枚举。
    Enumeration<String> headerNames = request.getHeaderNames();
    println(out,"<hr/>");
    while(headerNames.hasMoreElements()){
        String name = headerNames.nextElement();
        println(out," headerNmea = " + name + ";   getHeader = " + request.getHeader(name));
    }
    
    println(out,"<hr/>");
    //21. 以int的形式返回指定请求头的值。 ???
    request.getIntHeader("123");
    
    //22. 返回与客户端发出此请求时发送的URL相关联的额外路径信息。
    String pathInfo = request.getPathInfo();
    println(out,"PathInfo = " + pathInfo);
    
    //23. 返回包含在请求RUL中路径后面的查询字符串。如果没有查询字符串返回null
    String remoteUser = request.getRemoteUser();
    println(out,"RemoteUser = " + remoteUser);
    
    //24. 返回客户端制定的回话ID
    String requestedSessionId = request.getRequestedSessionId();
    println(out,"requestSessionId = " + requestedSessionId);
    
    //25. 返回请求调用servlet的URL部分
    String servletPath = request.getServletPath();
    println(out,"servletPath = " + servletPath);
    
    //26. 返回与此请求关联的当前HttpSession,如果没有当前会话并且参数为true,则返回一个新会话。
    HttpSession session = request.getSession(true);
    println(out,"getSession(true) = " + session);
    
    //27. 返回包含当前已经过验证的用户的名称的java.security.Principal对象。如果用户没有经过验证,则该方法返回null
    Principal userPrincipal = request.getUserPrincipal();
    println(out,"userPrincipal = " + userPrincipal);
    
    //28. 检查会话的id是否作为Cook进入的
    boolean sessionIdFromCookie = request.isRequestedSessionIdFromCookie();
    println(out,"sessionIdFromCookie = " + sessionIdFromCookie);
    
    //29. 检查请求的会话ID是否作为请求的URL的一部分进入的
    boolean sessionIdFromURL = request.isRequestedSessionIdFromURL();
    println(out,"sessionIdFormURL = " + sessionIdFromURL);
    
    //30. 
    
    println(out,"</ol>");
    out.flush();
    out.close();

}

public void println(PrintWriter out,Object obj){
    try {
        out.println("<li>");
        out.println(obj);
        out.println("</li>\n");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
%>
<%
getReqInfo(request,response);
%>

 

分享到:
评论

相关推荐

    HttpServletRequest详解.docx

    这个对象提供了丰富的接口和方法,允许开发者获取客户端的各种信息,包括请求URL、请求头、请求参数等。 1. **获取客户机信息**: - `getRequestURL()` 返回客户端发起请求时的完整URL,包括协议、主机名、端口和...

    从HttpServletRequest获取各种路径总结

    #### 二、路径获取方法详解 ##### 1. `getRealPath` - **描述**:用于获取服务器上的实际物理路径。 - **示例**: - `request.getSession().getServletContext().getRealPath("/")` - `this.getServletContext()...

    java HttpServletRequest和HttpServletResponse详解

    在进行Java Web开发时,理解HttpServletRequest和HttpServletResponse的工作原理和使用方法至关重要,这有助于你有效地处理客户端和服务器之间的交互,提供正确的服务和反馈。这两个接口的熟练掌握是成为专业Java ...

    jsp/servlet内置方法详解

    【JSP/Servlet 内置方法详解】 在Java Web开发中,JSP(JavaServer Pages)和Servlet是两种核心的技术,它们主要用于构建动态web应用程序。本文将深入解析JSP和Servlet的一些内置方法,帮助开发者更好地理解和运用...

    详解Spring框架下向异步线程传递HttpServletRequest参数的坑

    详解Spring框架下向异步线程传递HttpServletRequest参数的坑 在 Spring 框架下, HttpServletRequest 参数无法直接传递给异步线程,这是因为 HttpServletRequest 不是线程安全的。当主线程完成自己的工作返回 ...

    JSP处理Cookie的方法详解.txt

    ### JSP处理Cookie的方法详解 #### 一、Cookie概述与基本概念 Cookie是Web服务器向浏览器发送的小型数据块,用于存储用户特定的信息,以便在后续的请求中使用。每个网站可以设置最多20个Cookie,每个Cookie的大小...

    五种JSP页面跳转方法详解

    ### 五种JSP页面跳转方法详解 在Web开发中,页面间的跳转是非常常见的需求之一。JSP(JavaServer Pages)作为一种广泛使用的服务器端技术,在实现页面跳转方面提供了多种方式。本文将详细介绍五种JSP页面跳转的方法...

    HttpServletRequest与HttpServletResponse的实现类.docx

    【HttpServletRequest与HttpServletResponse详解】 在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet API中的核心接口,它们分别代表了客户端的HTTP请求和服务器的HTTP响应。每次客户端向Web...

    Java Spring Controller 获取请求参数的几种方法详解

    无论请求是GET还是POST,都可以使用`HttpServletRequest`对象的`getParameter`方法获取参数。如下所示: ```java @RequestMapping("/addUser2") public String addUser2(HttpServletRequest request) { String ...

    Java 文件上传的实例详解

    在本文中,我们将详细介绍 Java 文件上传的实例详解,包括使用 JSmartUpload 组件上传文件、使用 Servlet 上传文件等方法。 1. 使用 JSmartUpload 组件上传文件 JSmartUpload 是一个流行的 Java 文件上传组件,...

    servlet过滤器详解

    ### Servlet过滤器详解 #### 一、Filter的基本概念与作用 **过滤器(Filter)**是一种Web组件,它能够在客户端请求到达目标资源(如Servlet、JSP页面等)之前进行预处理,以及在响应返回客户端之前进行后处理。...

    详解J2EE中SQL语句的自动构造方法

    为了解决这个问题,我们可以利用Java EE中的`HttpServletRequest`对象,通过`getParameterNames()`方法获取表单中的所有元素名称,然后用`getParameter(elementName)`获取对应的值。假设表单元素的名称与数据库表字...

    详解Webwork中Action 调用的方法

    这个方法会先对HttpServletRequest进行封装,如处理文件上传等特殊请求,然后调用`ServletDispatcher.serviceAction()`。在这个过程中,Webwork会根据请求路径获取Action的命名空间(namespace)和Action名称,这些...

    DWR使用步骤详解DWR使用步骤详解

    在DWR中,可以通过`WebContextFactory.get().getHttpServletRequest()`来获取当前的HttpServletRequest对象,这对于处理请求参数或执行转发操作非常有用,如`context.forwardToString()`方法可以将请求转发到指定的...

    JavaWeb项目音频资源播放实现方法详解

    JavaWeb项目音频资源播放实现方法详解 JavaWeb项目音频资源播放实现方法详解是指在JavaWeb项目中实现音频资源播放的方法。该方法可以分为两种方式:方式一是在浏览器端播放音频资源,方式二是在服务器端播放音频...

    JSP 9 大内置对象详解

    每个内置对象都有特定的方法来处理各种任务,如`out`对象的`print`系列方法用于输出数据,`request`对象的`getParameter`系列方法用于获取请求参数,`response`对象的`sendError`和`sendRedirect`方法用于错误处理和...

    struts1.2入门操作详解及原理

    4. **执行Action**:找到匹配的Action Mapping后,`ActionServlet`将调用Action类(如`com.web.action.AddAction`)的`execute`方法,传递`ActionMapping`、`ActionForm`、`HttpServletRequest`和`...

    Spring mvc结果跳转方法详解

    Spring MVC 结果跳转方法详解 Spring MVC 结果跳转方法是指在 Spring MVC 框架中,如何将请求结果跳转到指定的页面或执行特定的操作。本文将详细介绍 Spring MVC 结果跳转方法的实现方式。 一、使用 ModelAndView ...

Global site tag (gtag.js) - Google Analytics