如何使用Servlet处理客户端的请求及响应Word文档下载推荐.docx
《如何使用Servlet处理客户端的请求及响应Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《如何使用Servlet处理客户端的请求及响应Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
![如何使用Servlet处理客户端的请求及响应Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/25/c8aa2464-1c69-426d-a242-4f8a00cf5001/c8aa2464-1c69-426d-a242-4f8a00cf50011.gif)
ASPSESSIONIDGGQGGGAF=JLKHAEICGAHEPPMJKMLDEM
Accept-Charset:
iso・8859・l几utf・8
从以上请求信息中,我们可以看出请求信息大致可以分成这样几类:
第一类协议相关的信息,如使用的请求方法、请求使用的协议以及请求的资源地址等信息第二类是请求头信息,如Accept以及Accept-language等等头部信息
第三类信息是用户组织的数据如username=zhangsan等信息
因此从服务器的角度必须能够获取以上信息,也就是通过请求对象对应的方法要能够获取响应的请求信息
第一类请求方法,获取协议相关的信息的方法:
getProtocal():
获取协议名称以及版本信息
getMethod();
获取Http请求所使用的方法
getRequestURI()获取请求的URI
getRequestURL()获取请求的URL
下面我们看一个获取协议信息的示例:
packageneusoft;
import;
/
*SeivletimplementationclassRequestSeivlet
*/
@WebServlet(,7rlH)
publicclassRequestSeivletextendsHttpSeivlet{
privatestaticfiliallongserialVersionUID=IL;
superQ;
//TODOAuto-generatedconstmctorstub
}严*
*@seeHttpSer\4et#doGet(HttpSenTletRequestrequest,HttpSendetResponse
*response)
♦/
protectedvoiddoGet(HttpSeivletRequestrequest,
HttpSeivletResponseresponse)tluowsSeivletException,IOException{response.setContentType(ntext/htinl;
charset=UTF-8M);
PrintWriterout=response.getWiiter();
out.piiiit(M<
htnil>
n);
out.piiiit(M<
head>
H);
out.priiit(M<
/head>
body>
out.print(H请求使用的协议为:
"
+request.getProtocolQ+H<
br>
r);
out.print("
请求提交数据所使用的方法为:
+request.getMethodO+"
<
);
out.priiit(M请求的URI为:
+request.getRequestURIQ+out.priiit(M请求的URL为:
”+request.getRequestURL()+M<
/body>
out.piuit(M<
/html>
*@seeHttpSer\4et#doPost(HttpSer\4etRequestrequest,HttpSendetResponse
protectedvoiddoPost(HttpSenrletRequestrequest,
HttpSen-letResponseresponse)tluowsSeivletException,IOException{tliis.doGet(request,response);
//TODOAuto-generatedmethodstub
}
输出的界面应为:
第二类获取请求头信息相关的方法:
getHeader(StringheaderName)获取指定的头部信息,返回字符串类型getDateHeader(StringheaderName)获取指定的头部信息,返回口期类型getlntHeader获取指定的头部信息,返回整数类型getHeaders获取指定的头部信息,返回字符串数组类型getDateHeaders获取指定的头部信息,返回字口期数组类型getlntHeaders获取指定的头部信息,返回字整数数组类型getHeaderNames()获取客户端传递过来所有头部的名称Httpl.l协议中定义的头部信息如下:
通用头部信息(即请求和响应均可以使用的头部信息)general-header=Cache-Control
|Connection
|Date
|Pragma
|Trailer
ITransfer-Encoding
|Upgrade
|Via
|Warning
除此之外还有请求专用的请求头:
request-header=Accept
|Accept-Charset
|Accept・Encoding
|Accept・Language
|Authorization
|Expect
|From
|Host
|If-Match
|If-Modified-Since
|If-None-Match
|If-Range
|lf・Unmodified-Since
|Max-Forwards
|Proxy-Authorization
|Range
|Referer
ITE
|User-Agent
例如我们想判断用户浏览器的类型以及所使用的地区语言可以使用如下语句:
packageneusoft;
/**
*SeivletimplementationclassRequestSeivlet2
@WebServlet(7r2H)
publicclassRequestSeivlet2extendsHttpSendet{
privatestaticfinallongserialVersionUID=IL;
/*♦
*@seeHttpSeivlet#HttpSenTlet()
publicRequestSenTlet2Q{
//TODOAuto-generatedconstructorstub
HttpServdetResponseresponse)tluowsSeivletException,IOException{response.setContentType(ntextzhtinl;
PrintWriterout=response.getWriter();
out.prmt(M<
out.pruit(M<
1);
out.prmt(M<
n);
out.priiit(H您使用的浏览器信息为:
+request.getHeader(,,User-AgentH)+H<
out.priiit(M您使用的地区语言为"
+request.getHeader(HAccept-LanguageH)+,,<
/htnil>
严*
*@seeHttpSer\4et#doPost(HttpSerx4etRequestrequest,HttpSerxdetResponse
HttpServdetResponseresponse)tluowsSeivletException,IOException{tliis.doGet(request,response);
其输出结果为:
第三类获取用户数据相关的方法:
getParameter(name)获取指定的用户参数,以字符串方式返回。
getParameterValues(name)获取指定的用户数据返回,以字符串数组返回。
getParameterNamesO获取客户端传递过来用户数据的参数名称,返回值为枚举类型
getParameterMap()获取客户端传递的用户数据,返回值为Map首先我们组织一个form表单:
!
DOCTYPEhtnilPUBLIC”J/W3C//DTDHTML4.01Transitional//ENH”/html4/loose・dt(T>
metahttp-equivT=HContent-TypeHcontent=Mtext,htnil;
charset=UTF-8H>
title>
Inseiltitlehere<
/title>
bodv>
J
formaction="
・/i3”name=nfinHonsubmit=,,nmethod=Hpostn>
tablebordei-Hr>
ti>
thcolspaii="
2H>
信&
nbsp;
&
息&
统&
nbsp;
计&
表
/th>
/tr>
td>
姓名:
/td>
iiiputtype=HtextHclass=ntextMname=nusername11size=n20H>
Vtd>
年龄:
iiiputtype=HtextHclass=ntextMsize=M20H>
性别:
iiiputtype=HradioHname=nsexHvalue=,'
男"
checkedA男
inputtype=nradionname=nsexHvalue=H女怜女
爱好:
inputtype=Hcheckboxnnaine=nmterestnvalue=,r旅游"
>
旅游<
bi>
inputt