java–基础–7.11–常用类–Request
1、常用方法
- getRequestURL:返回客户端发出请求时的完整URL。
- getRequestURI:返回请求行中的资源名部分。
- getQueryString :返回请求行中的参数部分。
- getPathInfo:返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以"/"开头。
- getRemoteAddr:返回发出请求的客户机的IP地址。
- getRemoteHost:返回发出请求的客户机的完整主机名。
- getRemotePort:返回客户机所使用的网络端口号。
- getLocalAddr:返回WEB服务器的IP地址。
- getLocalName:返回WEB服务器的主机名。
2、获得客户机请求头
- getHeader(string name)
- String getHeaders(String name)
- Enumeration getHeaderNames()
public class Demo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//一次性取得所有的请求头信息
Enumeration<String> enums = request.getHeaderNames();
while(enums.hasMoreElements()){
//key表示请求头
String key = enums.nextElement();
Enumeration<String> enums2 = request.getHeaders(key);
while(enums2.hasMoreElements()){
String value = enums2.nextElement();
response.getWriter().write(key+"<->"+value+"<br/>");
}
}
/*
String acceptLanguage = request.getHeader("Accept-Language");
String userAgent = request.getHeader("User-Agent");
String host = request.getHeader("Host");
*/
}
}
3、获得客户机请求参数(客户端提交的数据)
- getParameter(String)
- getParameterValues(String name)
4、防盗链
//取得浏览器来自于何方
String referer = request.getHeader("referer");
if(referer.equals("http://localhost:8080/index.html")){
}
5、转发
request.getRequestDispatcher("/WEB-INF/success.html")
.forward(request,response);
5、重定向
前后的二个Request域对象不同,如果取值不到,返回"null",不会报错
5.1、重定向和转发区别
- 转发
- 只能相对于当前web应用而言,不能转发到其它web应用
- 转发是服务端的内部行为,浏览器不知
- 转发时二个Servlet共享request域对象
- 重定向
- 重定向任何资源
- 重定向是浏览器和服务端的共同行为,浏览器必知
- 重定向时二个Servlet独享request域对象