1. 程式人生 > >Servlet詳解(四)--Request與Response

Servlet詳解(四)--Request與Response

stat tle 十六進制 就是 body getname getpath ext tco

一、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