传智播客Java web之 HttpServletRequest的应用
来源:互联网 发布:什么是淘宝账号 编辑:程序博客网 时间:2024/06/03 19:17
了解了HttpServletResponse,接下来是第六章HttpServletRequest的应用,这个类同样很重要。在这章的讲解中,视频涉及了一下一些方面:HttpServletRequest简介、获取请求行的相关信息、获取网络连接信息、获取请求头信息、浏览器传递参数信息的细节、获取请求参数、获取请求消息的实体内容、利用请求域属性传递信息、请求参数的中文读取问题等内容。
HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。同HttpServletResponse一样,在service()方法内部调用HttpServletRequest对象的各种方法来获取请求消息。WEB客户端发送给WEB服务器的HTTP请求消息分为三个部分:请求行、请求消息头、消息正文(也叫实体内容)。
获取请求行的相关信息的主要方法有如下一些:
getMethod方法返回HTTP请求消息中的请求方式。
getRequestURI方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getProtocol方法返回请求行中的协议名和版本。
getContextPath方法返回请求资源所属于的WEB应用程序的路径。
getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
getPathTranslated方法返回URL中的额外路径信息所对应的资源的真实路径。
getServletPath方法返回Servlet的名称或Servlet所映射的路径。
获取网络连接信息的主要方法有如下一些:
getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。
getRemoteHost方法返回发出请求的客户机的完整主机名,即“pc1.it315.org”这种格式。
getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。
getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。
getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。
getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。
getServerName方法返回当前请求所指向的主机名。
getServerPort方法返回当前请求所连接的服务器端口号。
getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。
至于获取请求头方法基本上就是get加上相应请求头的名字。如:getHeader、getHeaders、getHeaderNames、getIntHeader、getDateHeader、getContentType、getContentLength、getCharacterEncoding等等。视频中演示了一个实际获取所有请求头的例子:
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements())
{
String headerName = (String)headerNames.nextElement();
out.print(headerName + " : " + request.getHeader(headerName) + "<br>");
/*如果要考虑同一个请求头名可能出现多次,那么应该用下面的代码段代替上面一行程序代码*/
/*Enumeration values = request.getHeaders(headerName);
while(values.hasMoreElements())
{
out.print(headerName + " : " + (String)values.nextElement() + "<br>");
}
*/
}
接着视频再次提及用GET和POST传递参数的区别,这两种方式在HTTP协议中已经解释过了。然后是浏览器传递参数信息的细节,这些细节应该熟练掌握。
提交、重置、普通按钮如何传送参数总结:
1.在一个FORM表单中可以有多个提交按钮,单击任何一个提交按钮都可以提交表单,只有被单击的提交按钮的名称和值才被作为参数传递,其它提交按钮的信息不会作为参数传递。
2.表单中的普通按钮与重置按钮的名称和值不会作为参数传递。
3.没有设置name属性的表单字段元素的信息不会作为参数传递。
单行与多行文本输入框如何传送参数总结:
不管单行和多行文本输入框中是否有内容,设置了name属性的文本输入框的信息总是会作为参数传递。如果文本框中没有输入内容,可以认为其内容为一个空字符串(""),其参数形式为"text1="。
单选按钮与复选框如何传送参数总结:
1.只有被选中的复选框和单选按钮的信息才会作为参数传递,未被选中的复选框和单选按钮的信息不会作为参数传递。
2.对于多个名称相同的复选框,它们可以同时被选中;对于多个名称相同的单选按钮,只能同时选中其中的任意一个。
3.对于被选中的多个同名复选框,它们的信息将以多个名称相同的参数进行传递,即参数列表中会出现多个名称相同的参数。
4.对于没有设置value属性的单选按钮和复选框,当它们被选中时,它们传递的默认参数值为“on”。
隐藏表单字段与图像字段如何传送参数总结:
1.隐藏表单字段元素总是被作为参数传递给WEB服务器。如果要在提交FORM表单时将网页中的JavaScript程序获得的信息或者上次的WEB服务器端程序产生的标记信息传送给WEB服务器,使用隐藏字段就是一个很好的办法。
2.图像字段元素也可以提交FORM表单,用户单击图像字段元素后,表单中的其他信息和图像上单击处的x、y坐标一起传送给服务器,x坐标对应的参数名是图像元素名后加上.x(如image1.x),y坐标对应的参数名是图像元素名后加上.y(如image1.y)。
列表框如何传送参数总结:
1.没有作出选择的列表框的信息不会作为参数传递,就象表单中没有这个列表框的情况一样。
2.如果设置了列表框字段元素的multiple属性,可以选择列表中的多个选项。对于选中的每个选项,它们都会与列表框的名称分别组合成单独的参数后进行传递,这样,参数列表中会出现多个名称为列表框名的同名参数 。
3.当选中没有设置value属性的列表选项时,浏览器使用该选项的标题作为参数值。
这些细节知识应该多动手实际体验,写得多了自然就熟练了。
- 传智播客Java web之 HttpServletRequest的应用
- Java Web HttpServletRequest
- java HttpServletRequest 应用
- 传智播客Java web之 HttpServletResponse的应用
- Java Web开发之httpServletRequest获取客户端真实ip
- HttpServletRequest的应用
- HttpServletRequest的应用
- HttpServletRequest的应用
- HttpServletRequest的应用
- (补)HttpServletRequest的应用 .
- HttpServletRequest的应用
- HttpServletRequest的应用
- HttpServletRequest的应用
- HttpServletRequest的应用
- 传智播客java web学习,HttpServletRequest的getInputStream方法与getReader方法的区别
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- Servlet应用---HttpServletRequest的应用
- 传智播客Java web之 Servlet基础补充
- How to see SAP Notes?
- Java的四大应用领域
- 传智播客Java web之 HttpServletResponse的应用
- 开始我的CSDN生涯!
- 传智播客Java web之 HttpServletRequest的应用
- 关注N97应用开发
- 排序算法(1) —— 直接插入排序及其改进
- HP大中华区总裁孙振耀撰文谈职业和人生
- 生活真累
- 在Linux命令行下安装Oracle 10g
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- CEdit获取编辑框的内容
- 接口之比较