HttpServletRequest对象常用功能
概述
HttpServletRequest是Java Servlet API提供的接口,它代表客户端的请求,提供了丰富的方法获取客户端的相关信息。下面我们就来了解HttpServletRequest的常用功能。
获取请求参数
HttpServletRequest提供了两种获得请求参数的方法:getParameter和getParameterValues。
- getParameter(String name): 根据参数名称获取单个参数的值。如果该参数不存在,返回null。
- getParameterValues(String name): 根据参数名称获取多个参数的值。如果该参数不存在,返回null。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String[] hobbies = request.getParameterValues("hobby");
System.out.println(username); // 输出表单提交的用户名
for (String hobby : hobbies) {
System.out.println(hobby); // 输出表单提交的多个爱好
}
}
}
获取请求头信息
HttpServletRequest提供了一系列方法用于获取请求头的信息,如下:
- getHeader(String name): 根据头名称获取头信息。
- getHeaders(String name): 根据头名称获取多个头信息。
- getHeaderNames(): 获取请求头的名称。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userAgent = request.getHeader("User-Agent");
Enumeration<String> headers = request.getHeaderNames();
while (headers.hasMoreElements()) {
String name = headers.nextElement();
String value = request.getHeader(name);
System.out.println(name + ": " + value);
}
}
}
获取请求URI信息
HttpServletRequest提供了下列方法用于获取请求URI信息:
- getRequestURI(): 获取请求URI(不包含参数部分)。
- getRequestURL(): 获取完整请求URL(包含协议、主机、端口和路径部分)。
- getQueryString(): 获取请求参数。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
StringBuffer url = request.getRequestURL();
String queryString = request.getQueryString();
System.out.println(uri); // 输出请求路径
System.out.println(url); // 输出完整URL
System.out.println(queryString); // 输出请求参数
}
}
获取请求方法
HttpServletRequest提供了方法获取请求方法,如下:
- getMethod(): 获取请求方法(GET、POST、PUT、DELETE等)。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getMethod();
System.out.println(method); // 输出GET
}
}
获取客户端信息
HttpServletRequest提供了获取客户端信息的方法,如下:
- getRemoteAddr(): 获取客户端IP地址。
- getRemoteHost(): 获取客户端主机名。
- getRemotePort(): 获取客户端端口号。
- getLocalAddr(): 获取服务器IP地址。
- getLocalName(): 获取服务器主机名。
- getLocalPort(): 获取服务器端口号。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String remoteAddr = request.getRemoteAddr();
String remoteHost = request.getRemoteHost();
int remotePort = request.getRemotePort();
String localAddr = request.getLocalAddr();
String localName = request.getLocalName();
int localPort = request.getLocalPort();
System.out.println("Client IP: " + remoteAddr);
System.out.println("Client Hostname: " + remoteHost);
System.out.println("Client Port: " + remotePort);
System.out.println("Server IP: " + localAddr);
System.out.println("Server Hostname: " + localName);
System.out.println("Server Port: " + localPort);
}
}
获取Session对象
HttpServletRequest提供了getSession方法返回Session对象。
- getSession(): 返回Session对象,如果Session不存在则创建一个新的Session对象。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("username", "admin");
}
}
获取ServletContext对象
HttpServletRequest提供了getServletContext方法返回ServletContext对象。
- getServletContext(): 返回ServletContext对象。
示例代码:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = request.getServletContext();
context.setAttribute("appname", "MyWebApp");
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:HttpServletRequest对象常用功能_动力节点Java学院整理 - Python技术站