`
guohf
  • 浏览: 406669 次
  • 性别: 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

    HttpServletRequest 详解 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

    java HttpServletRequest和HttpServletResponse详解

    主要介绍了java HttpServletRequest和HttpServletResponse详解的相关资料,需要的朋友可以参考下

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

    主要介绍了详解Spring框架下向异步线程传递HttpServletRequest参数的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    EL表达式 (详解)

    EL表达式 (详解) EL表达式 1、EL简介 1)语法结构 ${expression} 2)[]与.运算符 EL 提供.和[]两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 ...

    详解Struts2中Action访问Servlet API的几种方法

    详解Struts2中Action访问Servlet API的几种方法 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象。如果想在Struts2程序中用到...

    DWR3 访问WEB元素的两种方法实例详解

    DWR3访问WEB元素主要有两种方法, 第一种是类似于SpringMVC的用法,直接使用,也就是说在需要使用DWR来远程调用的方法上给一个需要用到的WEB... public void test(String name, HttpServletRequest request) { Syst

    servlet获取表单数据详解(十分全)

    客户端发出的请求呗封装成为一个HttpServletRequest对象。所有的信息都包括请求的地址、请求的参数、...客户端提交的信息可能有问板框、密码框、选择框、单选框、复选框以及文本域,所以仅仅掌握以上方法还远远不够。

    spring jar 包详解

    spring jar 包详解 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用...

    随机验证码源代码详解

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setContentType(CONTENT_TYPE); response.setContentType("image/jpeg"); ...

    Struts2属性文件详解

    提示: 当设置该参数为GBK时,相当于调用HttpServletRequest的setCharacterEncoding方法. struts.objectFactory 指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring. struts.objectFactory.spring.autoWire ...

    JAVA WEB 开发详解(JSP+Serlet)

    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException { HttpSession session=req.getSession(); String randomCode=(String)session.getAttribute(...

    JSP的request对象实例详解

    JSP的request对象实例详解 一 request对象定义 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求...

    详解 问题:HttpServlet cannot be resolved to a type

    主要介绍了详解 问题:HttpServlet cannot be resolved to a type的相关资料,需要的朋友可以参考下

    详解java8中的Stream数据流

    Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。接下来通过本文给大家分享java8中的Stream数据流知识,感兴趣的朋友一起看看吧

    JSP中九大内置对象和四种属性范围详解

    JSP中九大内置对象和四种属性范围详解 一般对象需要实例化才可以调用,而JSP的内置对象是不用实例化就可以直接调用的对象。 总共有9个,对应如下表: 序号 对象 类型 1 pageContext javax.servlet....

    详解JSP 内置对象request常见用法

    ServletRequest 接口的唯一子接口是 HttpServletRequest ,HttpServletRequest 接口的唯一实现类 HttpServletRequestWrapper ,单从 request 对象一脉单传的类继承体系可以看出,javaweb 标准类库只支持了 http 协议...

    Filter_Listener相信代码使用

    HttpServletRequest reque=(HttpServletRequest) request; System.out.println("进行合法验证!!"); if(null==reque.getHeader("Referer")){ request.setAttribute("message", "你进行了不合法的操作!!...

    解决拦截器对ajax请求的拦截实例详解

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception { //获取判定登陆的session是否存在 String token = (String) request.getSession()....

    java 编写文件上传类简单易用

    这两个属性,我们都可以直接从 HttpServletRequest 的一个实例中获得,具体调用的方法是 getContentType() 和 getContentLength() 。 Content-Type 是一个字符串,在上面的例子中,增加 System.out.println...

    深入体验Java Web开发内幕

    2.7 思考与实践 第3章 HTTP协议详解  3.1 了解HTTP&lt;br&gt; 3.2 请求行与状态行  3.3 通用信息头  3.4 请求头  3.5 响应头  3.6 实体头  3.7 扩展头  3.8 思考与实践 第4章 Servlet...

Global site tag (gtag.js) - Google Analytics