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=org.apache.catalina.session.StandardSessionFacade@52a98f8b
二、HttpServletResponse
方法基本为对响应头部和响应行中的Status,Header,DataHeader,Error(400,404等),URL等查看,添加,修改,目前实际意义不大,就算了吧,测试太不方便了