Servlet详解--Request与Response

Posted qqwhsj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet详解--Request与Response相关的知识,希望对你有一定的参考价值。

一、HttpServletRequest:

 我们一般意义上的Servlet指的就是HttpServletRequest,而该类仅仅实现了ServletRequest接口,这些抽象接口除了可以通过方法名揣测意思外没什么用,所以就不去分析ServletRequest了。

另外HttpServletRequest也是个接口,只是作为向上传递的一个父接口,还没找到具体的类,所以也看不到每个方法的实体,只能以执行结果看了。

有些方法简单的一些登录没有结果,也不知道该如何是好。

前端内容

<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="/myweb001_war_exploded/FristServlet" method="get">
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    其他:<input type="text" name="other"><br/>
    <input type="submit" value="提交"/>
  </form>
  </body>
</html>

 

1.第一部分方法,按照官方文档顺序,容易观看

        System.out.println("(1)------------------------------------------------");
        System.out.println("这是AuthType="+request.getAuthType());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是上下文地址="+request.getContextPath());
        System.out.println("-----------------------------------------------------");
        Cookie[] cookies=request.getCookies();
        for(Cookie cookie:cookies){
            System.out.println(cookie.getValue());
        }
        System.out.println("-----------------------------------------------------");

结果如下:

(1)------------------------------------------------        //不知道具体含义
这是AuthType=null
-----------------------------------------------------      
这是上下文地址=/myweb001_war_exploded
-----------------------------------------------------      //取出cookie的值,但是使十六进制的
1A7577D81D1866C69FD9127967D158CD
8ce90cf9-1028-42a0-ba4d-8e0a99fdc771
-----------------------------------------------------

2.第二部分方法。

System.out.println("(2)Header--------------------------------------------");
        Enumeration<String> headerNames=request.getHeaderNames();
        if(headerNames.hasMoreElements()){
             String headname=headerNames.nextElement();
             System.out.println("headname= "+headname);
        }
        for(Cookie cookie:cookies){
            System.out.println(cookie.getValue());
        }
        System.out.println("-----------------------------------------------------");
        System.out.println("这是Method="+request.getMethod());
        System.out.println("-----------------------------------------------------");
//        Collection<Part> parts=request.getParts();    Unable to process parts as no multi-part configuration has been provided
//        for(Part part:parts){                        //执行失败
//            System.out.println("部件名:"+part.getName());
//        }
        System.out.println("-----------------------------------------------------");

执行结果:

(2)Header--------------------------------------------
headname= host
AD0B25E43ED2EE4F4E6E2ADE702DF5E3
8ce90cf9-1028-42a0-ba4d-8e0a99fdc771
-----------------------------------------------------
这是Method=GET
-----------------------------------------------------
-----------------------------------------------------

3.第三部分方法

        System.out.println("(3)--------------------------------------------------");
        System.out.println("这是pathinfo="+request.getPathInfo());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是pathtranslated(翻译)="+request.getPathTranslated());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是geturl携带的信息="+request.getQueryString());
        System.out.println("-----------------------------------------------------");

执行结果:

(3)--------------------------------------------------
这是pathinfo=null
-----------------------------------------------------
这是pathtranslated(翻译)=null
-----------------------------------------------------
这是geturl携带的信息=username=myname&password=123&other=other
-----------------------------------------------------

4.第四五部分方法

        System.out.println("(4)--------------------------------------------------");
        System.out.println("这是RemoteUser="+request.getRemoteUser());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是SessionId="+request.getRequestedSessionId());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是URL="+request.getRequestURL());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是URI="+request.getRequestURI());
        System.out.println("-----------------------------------------------------");

        System.out.println("(5)--------------------------------------------------");
        System.out.println("这是ServletPath="+request.getServletPath());
        System.out.println("-----------------------------------------------------");
        System.out.println("这是SessionId="+request.getSession());

执行结果:

(4)--------------------------------------------------
这是RemoteUser=null
-----------------------------------------------------
这是SessionId=AD0B25E43ED2EE4F4E6E2ADE702DF5E3
-----------------------------------------------------
这是URL=http://localhost:8080/myweb001_war_exploded/FristServlet
-----------------------------------------------------
这是URI=/myweb001_war_exploded/FristServlet
-----------------------------------------------------
(5)--------------------------------------------------
这是ServletPath=/FristServlet
-----------------------------------------------------
这是SessionId[email protected]

二、HttpServletResponse

方法基本为对响应头部和响应行中的Status,Header,DataHeader,Error(400,404等),URL等查看,添加,修改,目前实际意义不大,就算了吧,测试太不方便了

以上是关于Servlet详解--Request与Response的主要内容,如果未能解决你的问题,请参考以下文章

response对象和request对象详解

respon对象

Servlet详解

详解tomcat的连接数与线程池

详解tomcat的连接数与线程池

Servlet 详解