一、HttpServletRequest介绍
HttpServletRequest,Extends the ServletRequest interface to provide request information for HTTP servlets.翻译过来就是HttpServletRequest是继承于ServletRequest,专门用来向HTTP协议的Servlets提供请求信息。当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
二、HttpServletRequest常用方法
- getServletContext()
- getRealPath(java.lang.String path)
- getContextPath()
- getServletPath()
- getPathInfo()
- getRequestURI()
- getRequestURL()
- getMethod()
- getQueryString()
- getParameter(java.lang.String name)
- getParameterMap()
- getParameterNames()
- getParameterValues(java.lang.String name)
- getRemoteAddr()
- getRemoteHost()
- getRemotePort()
- getRemoteUser()
- getLocale()
- getLocalAddr()
- getLocalName()
- getLocalPort()
- getServerName()
- getServerPort()
- getProtocol()
- getScheme()
- getHeader(java.lang.String name)
- getHeaderNames()
- getHeaders(java.lang.String name)
- getSession()
- getSession(boolean create)
三、方法测试
servlet:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = -514345712229720561L;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String realPath = request.getServletContext().getRealPath("/");
String contextPath = request.getContextPath();
String ServletPath = request.getServletPath();
String pathInfo = request.getPathInfo();
String requestUri = request.getRequestURI();
String requestUrl = request.getRequestURL().toString();
String method = request.getMethod();
String queryString = request.getQueryString();
String user = request.getParameter("user");
String password = request.getParameter("password");
String remoteAddr = request.getRemoteAddr();
String remoteHost = request.getRemoteHost();
int remotePort = request.getRemotePort();
String remoteUser = request.getRemoteUser();
Locale locale = request.getLocale();
String localAddr = request.getLocalAddr();
String localName = request.getLocalName();
int localPort = request.getLocalPort();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
String accept = request.getHeader("Accept");
String userAgent = request.getHeader("User-Agent");
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write("获取到的客户机信息如下:");
out.write("<hr/>");
out.write("请求的绝对路径:" + realPath);
out.write("<br/>");
out.write("请求的上下文:" + contextPath);
out.write("<br/>");
out.write("请求的ServletPath:" + ServletPath);
out.write("<br/>");
out.write("pathInfo:" + pathInfo);
out.write("<br/>");
out.write("请求的资源:" + requestUri);
out.write("<br/>");
out.write("请求的URL地址:" + requestUrl);
out.write("<br/>");
out.write("<br/>");
out.write("请求使用的方法:" + method);
out.write("<br/>");
out.write("请求的URL地址中附带的参数:" + queryString);
out.write("<br/>");
out.write("请求参数user:" + user);
out.write("<br/>");
out.write("请求参数password:" + password);
out.write("<br/>");
out.write("<br/>");
out.write("来访者IP地址:" + remoteAddr);
out.write("<br/>");
out.write("来访者主机名:" + remoteHost);
out.write("<br/>");
out.write("来访者端口号:" + remotePort);
out.write("<br/>");
out.write("来访用户:" + remoteUser);
out.write("<br/>");
out.write("<br/>");
out.write("请求最终到达的服务器本地语言环境:" + locale);
out.write("<br/>");
out.write("请求最终到达的服务器IP地址(请求被转发以后最终处理的地方):" + localAddr);
out.write("<br/>");
out.write("请求最终到达的服务器主机名(请求被转发以后最终处理的地方):" + localName);
out.write("<br/>");
out.write("请求最终到达的服务器端口(请求被转发以后最终处理的地方):" + localPort);
out.write("<br/>");
out.write("<br/>");
out.write("请求被发送的主机名(url链接中的主机名):" + serverName);
out.write("<br/>");
out.write("请求被发送的端口(url链接中的端口号):" + serverPort);
out.write("<br/>");
out.write("<br/>");
out.write("Accept:" + accept);
out.write("<br/>");
out.write("User-Agent:" + userAgent);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
}
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>com.zavier.test.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
</web-app>
运行结果: