我是靠谱客的博主 专注水杯,这篇文章主要介绍request对象(请求对象)request对象,现在分享给大家,希望可以做个参考。

request对象

1. 获得请求行

获得请求的方式 get post

复制代码
1
2
String method = request.getMethod();

获得请求的url和uri

复制代码
1
2
3
String requestURI = request.getRequestURI(); StringBuffer requestURL = request.getRequestURL();

获得当前应用的工程名

复制代码
1
2
String contextPath = request.getContextPath();

获得地址后参数的字符串

复制代码
1
2
String queryString = request.getQueryString();

获得客户端信息 访问者的ip

复制代码
1
2
String remoteAddr = request.getRemoteAddr();

request获得的是客户端发送的信息

2. 获得请求头

获得请求头指定name的value值

复制代码
1
2
String header = request.getHeader("User-Agent");

获得所有请求头name的值

复制代码
1
2
3
4
5
6
Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String nextElement = headerNames.nextElement(); System.out.println(nextElement + ":"+ request.getHeader(nextElement)); }

referer头的作用:防盗链,防止别人引用我的资源 request.getHeader(“referer”)

复制代码
1
2
3
4
5
6
7
8
9
response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); String header = request.getHeader("referer"); if (header != null && header.startsWith("http://192.168.43.232")) { writer.write("可以访问"); } else { writer.write("防盗喽"); }

3. 获得请求体

获得单个表单控件的数据 request.getParameter(“name”)

复制代码
1
2
3
4
5
String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(username); System.out.println(password);

获得多个同名表单的控件值 request.getParameterValues(“checkbox”)

复制代码
1
2
3
4
5
String[] parameterValues = request.getParameterValues("checkbox"); for (String string : parameterValues) { System.out.println(string); }

获得所有的name属性 request.getParameterNames()

复制代码
1
2
3
4
5
6
7
Enumeration<String> parameterNames = request.getParameterNames(); while (parameterNames.hasMoreElements()) { String name = parameterNames.nextElement(); System.out.println(name + ":"); System.out.println(Arrays.toString(request.getParameterValues(name))); }

获得key(name) value[]。。 request.getParameterMap()

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Map<String, String[]> parameterMap = request.getParameterMap(); // 1 遍历Map的第一种方式 Set<String> keySet = parameterMap.keySet(); for (String key : keySet) { System.out.println(key); System.out.println(Arrays.toString(parameterMap.get(key))); } Iterator<String> iterator = keySet.iterator(); while(iterator.hasNext()){ System.out.println(Arrays.toString(parameterMap.get(iterator.next()))); } //2.遍历map的第二种方式 Collection<String[]> values = parameterMap.values(); for (String[] value : values) { System.out.println(Arrays.toString(value)); } Iterator<String[]> iterator2 = values.iterator(); while(iterator2.hasNext()){ System.out.println(Arrays.toString(iterator2.next())); } //3. 遍历map的第三种方式 System.out.println("---------------entrySet------------------------"); Set<Entry<String, String[]>> entrySet = parameterMap.entrySet(); for (Entry<String, String[]> entry : entrySet) { System.out.println(entry); System.out.println(entry.getKey()); System.out.println(Arrays.toString(entry.getValue())); } Iterator<Entry<String, String[]>> iterator3 = entrySet.iterator(); while(iterator3.hasNext()){ Entry<String, String[]> next = iterator3.next(); System.out.println(next); System.out.println(next.getKey()+""); System.out.println(next.getValue()+""); }

4.request的其他功能

request是一个域对象

复制代码
1
2
3
4
5
request.setAttribute(String name,Object o) request.getAttribute(String name) request.removeAttribute(String name)

post请求解决中文乱码问题

复制代码
1
2
request.setCharacterEncoding("utf-8");

get请求解决中文乱码问题
Tomcat (iso-8859-1),服务器得到该参数进行反编码;

复制代码
1
2
new String(name.getBytes("iso-8859-1"), "utf-8");

请求转发

复制代码
1
2
request.getRequestDispatcher("/welcome.jsp").forward(request,response);

最后

以上就是专注水杯最近收集整理的关于request对象(请求对象)request对象的全部内容,更多相关request对象(请求对象)request对象内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部