[Java] HttpServletRequest
HttpServletRequest
位于javax.servlet.http,简单来说就是一个请求的封装
[请求头数据+正文数据] 一个域对象
相关方法
获取请求头方法
String getHeader(String name):获取指定名称的请求头;
Enumeration getHeaderNames():获取所有请求头名称;
int getIntHeader(String name):获取值为int类型的请求头。
//Demo
response.setContentType("text/html;charset=utf-8");
Enumeration names = request.getHeaderNames();
while(names.hasMoreElements()) {
String name = (String)names.nextElement();
String value = request.getHeader(name);
System.out.println(name + ": " + value);
response.getWriter().println(name + ": " + value + "<br/>");
}
其他获取请求方法
int getContentLength():获取请求正文的字节数,GET请求没有正文,没有正文返回-1;
String getContentType():获取请求类型,如果请求是GET,那么这个方法返回null;如果是POST请求,那么默认为application/x-www-form-urlencoded;
String getMethod():返回请求方法,例如:GET
Locale getLocale():返回当前客户端浏览器支持的Locale。java.util.Locale表示国家和言语;
String getCharacterEncoding():获取请求编码,如果没有setCharacterEncoding(),那么返回null。表示使用ISO-8859-1编码;
void setCharacterEncoding(String code):设置请求编码,只对正文有效!注意,对于GET而言,没有正文。只能对POST请求中的参数有效!
// http://localhost:8080/hello/oneServlet?name=zhangSan
String getContextPath():返回上下文路径,例如:/项目名称
String getQueryString():返回请求URL中的参数,例如:name=zhangSan
String getRequestURI():返回请求URI路径,例如:/hello/oneServlet
StringBuffer getRequestURL():返回请求URL路径,例如:http://localhost/hello/oneServlet,即返回除了参数以外的路径信息;
String getServletPath():返回Servlet路径,例如:/oneServlet
String getRemoteAddr():返回当前客户端的IP地址;
String getRemoteHost():返回当前客户端的主机名,但这个方法的实现还是获取IP地址;
int getRemotePort():返回客户端的端口号,每次请求都会变;
String getSchema():返回请求协议,例如:http;
String getServerName():返回主机名,例如:localhost
int getServerPort():返回服务器端口号,例如:80
获取参数方法
可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:
String getParameter(String name):通过指定名称获取参数值;
String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;
Enumeration getParameterNames():获取所有参数的名字;
Map getParameterMap():获取所有参数对应的Map。
//获取单值参数
String s1 = request.getParameter(“p1”)
对中文的处理
//POST
String name = request.getParameter(“name”);
name = new String(name.getBytes(“ISO-8859-1”), “UTF-8”);
//GET
String s = request.getParameter(“s”);
s = new String(s.getBytes(“iso-8859-1”), “utf-8”);
//GET还可以JavaScript对超链接做URL编码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具