HttpServletRequest的使用
当HTTP转发给Web容器处理时,Web容器会收集相关信息,并产生HttpServletRequest对象,使用这个对象可以取得所有HTTP请求中的信息,可以在Servlet中进行处理,也可以转发给其他的Servlet/Jsp处理。
1. 请求信息的取得
getQueryString()方法可以取得HTTP请求的查询字符串。
getParameter()方法能指定请求参数名称来取得相应的值,如取得下面请求参数为name 的值:
http://localhost:8080/WebApp1/hello.do?name=acmagic;
获取到的name 的值就为acmagic,如果请求中没有参数的名称,则返回null.
如果窗口上一个参数名称有多个值,此时可以用getParameterValues()方法取得一个String数组。例如:
http://localhost:8080/WebApp1/hello.do?choose=sans&choose=lily&choose=jack
String[] names = request.getParameterValues("choose");
如果要知道有多少请求参数,可以使用getParameterNames()方法,他会返回一个Enumeration对象,其中包括所有请求参数的名称。例如:
Enumeration<String> e = request.getParameterNames();
while (e.hasMoreElements()) {
String param = (String) e.nextElement();
out.println(param + "<br>");
}
如果要知道浏览器请求的标头,可以用getHeader()方法,也可以使用getHeaderNames()获取浏览器请求的所有标头值。
完整代码:
package com.web.http;
import java.awt.print.Printable;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class GetRequestMessage extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;protected void getRequestMessage(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 传送给浏览器utf-8编码的文字
response.setContentType("text/html;charset=utf-8");
//请求字符编码,如果有中文才不会乱码
request.setCharacterEncoding("utf-8");
PrintWriter output = response.getWriter();
output.println("<html>");
output.println("<head>");
output.println("<title>getRequestMessage</title>");
output.println("</head>");
output.println("<body>");
// 取得应用程序的路径
output.println("<h1>This WebApp at :" + request.getContextPath() + "</h1>");
// 取得请求字符串
output.println("<p>Request string: " + request.getQueryString() + "</p>");
// 取得参数中对应的值
output.println("<p>name = " + request.getParameter("name") + "</p>");
// 一个参数对应几个值
String[] chooses = request.getParameterValues("choose");
output.print("<p>chooses are: " + chooses[1] + "</p>");
// 请求参数的个数
Enumeration<String> e = request.getParameterNames();
while (e.hasMoreElements()) {
String param = (String) e.nextElement();
output.println(param + ":" + request.getParameter(param) + "<br><br>");
}// 获取所有标头名
Enumeration<String> h = request.getHeaderNames();
while (h.hasMoreElements()) {
String head = (String) h.nextElement();
output.println(head + ": " + request.getHeader(head) + "<br>");
}output.println("<body>");
output.println("</html?");
output.close();
}@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
getRequestMessage(request, response);
}@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
getRequestMessage(request, response);
}}</font></font>
运行结果如下:
(未完。。。)
HttpServletRequest的使用的更多相关文章
- java中HttpServletRequest常用获取url、资源名等方法总结
HttpServletRequest客户端获取请求,客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中.所以我们能够从对象中获取相应信息 端口 request.get ...
- eclipse开发servlet,HttpServletRequest报红叉解决方案
eclipse开发servlet,HttpServletRequest报红叉解决方案 今天突然间有兴致,想打一会代码,于是开发一个Servlet,代码和配置路径都没问题,HttpServlet居然报错 ...
- java web学习总结(十) -------------------HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...
- The method getDispatcherType() is undefined for the type HttpServletRequest
在使用百度的ueditor的时候,老是报错: The method getDispatcherType() is undefined for the type HttpServletRequest 原 ...
- HttpServletRequest获取请求参数
private static String getRequestParameter(HttpServletRequest request, HttpServletResponse response) ...
- 解决httpServletRequest.getParameter获取不到参数
用httpServletRequest.getParameter接收post请求参数,发送端content Type必须设置为application/x-www-form-urlencoded:否则会 ...
- Struts1.x有两个execute方法,不要重写错哦HttpServletRequest才是对的(转)
Struts1.x 的 Action 有两个 execute 哦,小心搞错! by agate - Published: 2008-05-01 [9:42 下午] - Category: 程序编码 不 ...
- httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系
学习servlet的时候经常感到疑惑 HttpServletRequest是服务器创建的?还是servlet容器创建的? 过滤器是服务器创建的?还是servlet容器创建的? serlet容器和tom ...
- HttpServletRequest的Attribute和Parameter区别
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下的组件通过getParameter()方法来获得请求参数,例如假定we ...
随机推荐
- / | \ # $ ^ & *这些符号怎么读
供参考: /: slash或forward slash 英 [slæʃ] |: vertical bar或pipe #: number sign或pound sign \: backslash 英 [ ...
- C#:ListView控件如何实现点击列表头进行排序?
using System; using System.Collections; using System.Windows.Forms; namespace Common { /// <summa ...
- 微信小程序网络封装-简单高效
废话引言 小程序虽然出世很久了,但一直没怎么接触到小程序开发.吉他兴趣班老师想弄一个小程序发布课程信息和打卡功能,作为IT一员就自愿加入了这个小程序开发小组中.虽然小程序面向的是前端工程师,但作为移动 ...
- Python -- 网络编程 -- 简单抓取网页
抓取网页: urllib.request.urlopen(url).read().decode('utf-8') --- (百度是utf-8,谷歌不是utf-8,也不是cp936,ascii也不行 ...
- Git笔记:Git介绍和常用命令汇总
Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持. 工作流程 Git 的工作流程大致如下: 克隆 Git 资源作为 ...
- [深入Maven源代码]maven绑定命令行参数到具体插件
maven的插件 我们知道Maven具体构建动作都是由插件执行的,maven本身只是提供一个框架,这样就提供了高度可定制化的功能,我们用maven命令执行比如mvn clean package这样的命 ...
- ansible 角色登陆
用ansible 来管理远程的主机,最大的好处是方便,ansible不用在远程的主机上安装ansible的客户端,ansible只要能通过ssh连接上远程主机就 能对它进行管理.也就是说ansible ...
- Go基础知识
编程基础 Go程序是通过package来组织的(与Python类似) 只有package名称为main的包可以包含main函数 一个可执行程序有且仅有一个main包 一般结构basic_structu ...
- 笨方法学python学习笔记
创建于:2016-02-29 更新于:03-02 python版本:2.7 %r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户展示输出的: 每 ...
- ASP.NET MVC 的常用的HTML辅助方法笔记
Html.BeginForm() 输出<form>标签Html.EndForm() 输出</form>标签Html.Label() 输出<label>标签Html. ...