概述
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对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复