WEB核心【request对象】第九章
【摘要】
目录
1,request对象
1.1引言&概述
1.2请求行
1.3请求头【重点】
1.4请求体【阶段重点】
1.4.1请求参数
1.4.2乱码解决
1,request对象
1.1引言&概述
request封装了 浏览器发来请求的三部分(行、头、体)
h...
目录
1,request对象
1.1引言&概述
request封装了 浏览器发来请求的三部分(行、头、体)
http 1.1:长链接
1.2请求行
1.3请求头【重点】
-
/**
-
* 请求头
-
*/
-
public void run2() throws IOException {
-
PrintWriter out = getResponse().getWriter();
-
HttpServletRequest request = getRequest();
-
// 获取请求消息中所有头字段
-
Enumeration headerNames = request.getHeaderNames();
-
// 使用循环遍历所有请求头,并通过getHeader()方法获取一个指定名称的头字段
-
while (headerNames.hasMoreElements()) {
-
String headerName = (String) headerNames.nextElement();
-
out.print(headerName + " : "
-
+ request.getHeader(headerName)+ "<br>");
-
}
-
}
1.4请求体【阶段重点】
1.4.1请求参数
请求体:post方式
请求参数:get:请求行
post:请求体
-
/**
-
* get
-
*/
-
public String runa(){
-
String uname1 = getRequest().getParameter("uname");
-
System.out.println(uname1);
-
String hobby1 = getRequest().getParameter("hobby");
-
System.out.println(hobby1);
-
-
String[] unames = getRequest().getParameterValues("uname");
-
System.out.println(Arrays.toString(unames));
-
String[] hobby = getRequest().getParameterValues("hobby");
-
System.out.println(Arrays.toString(hobby));
-
//获取整个参数列表
-
System.out.println("-----------");
-
Map<String, String[]> map = getRequest().getParameterMap();
-
for (Map.Entry<String, String[]> entry : map.entrySet()) {
-
System.out.println(entry.getKey()+"="+Arrays.toString(entry.getValue()));
-
}
-
return null;
-
}
-
Enumeration<String> enumeration = getRequest().getParameterNames();
-
while (enumeration.hasMoreElements()){
-
String key = enumeration.nextElement();
-
System.out.println(key);
-
}
小结:
toBean: 该参数列表较为复杂,参数列表需要进行servlet---service---dao的参数传递
若仅需要单独获取某个参数的值,不涉及进行参数传递、复用:
单个值:getParameter()
多个值:getParameterValues()
获取整个参数列表:getParameterMap();
1.4.2乱码解决
-
String str1 = getRequest().getParameter("uname");
-
System.out.println("乱码:"+str1);
-
str1 = new String(str1.getBytes("iso8859-1"),"utf-8");
-
System.out.println("解决乱码:"+str1);
post请求参数,因为存在于请求体中,可以通过设置请求体解码码表为utf-8 来解决乱码问题(baseServlet已经帮我们解决):
request.setCharacterEncoding("utf-8");
get请求参数,因为存在于请求行上,请求行没有方法直接修改码表,只能停止tomcat,通过修改tomcat码表改为utf-8才可以,但是不建议。
处理方法:一个一个参数转
new String("乱码".getBytes("iso8859-1"),"utf-8");
文章来源: qianxu.blog.csdn.net,作者:爱吃豆的土豆,版权归原作者所有,如需转载,请联系作者。
原文链接:qianxu.blog.csdn.net/article/details/125079289
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)