我是靠谱客的博主 专注水杯,最近开发中收集的这篇文章主要介绍request对象(请求对象)request对象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

request对象

1. 获得请求行

获得请求的方式 get post

	String method = request.getMethod();

获得请求的url和uri

	String requestURI = request.getRequestURI();
StringBuffer requestURL = request.getRequestURL();

获得当前应用的工程名

	String contextPath = request.getContextPath();

获得地址后参数的字符串

	String queryString = request.getQueryString();

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

	String remoteAddr = request.getRemoteAddr();

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

2. 获得请求头

获得请求头指定name的value值

String header = request.getHeader("User-Agent");

获得所有请求头name的值

	Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String nextElement = headerNames.nextElement();
System.out.println(nextElement + ":"+ request.getHeader(nextElement));
}

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

	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”)

	String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);

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

	String[] parameterValues = request.getParameterValues("checkbox");
for (String string : parameterValues) {
System.out.println(string);
}

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

	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()

	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是一个域对象

	request.setAttribute(String name,Object
o)
request.getAttribute(String name)
request.removeAttribute(String name)

post请求解决中文乱码问题

	request.setCharacterEncoding("utf-8");

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

	new String(name.getBytes("iso-8859-1"), "utf-8");

请求转发

	request.getRequestDispatcher("/welcome.jsp").forward(request,response);

最后

以上就是专注水杯为你收集整理的request对象(请求对象)request对象的全部内容,希望文章能够帮你解决request对象(请求对象)request对象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部