Servlet詳解(四)--Request與Response
阿新 • • 發佈:2019-05-11
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