b)HttpServletRequest类的常用方法
- getRequestURI()
获取请求的资源路径
ii. getRequestURL()
获取请求的统一资源定位符(绝对路径)
iii.
getRemoteHost()
获取客户端的ip地址
iv. getHeader()
获取请求头
v. getParameter()
获取请求的参数I
vi. getParameterValues( )
获取请求的参数(多个值的时候使用)
vii.
getMethod()
获取请求的方式GET或POST
viii.
setAttribute(key, value);
设置域数据
ix. getAttribute(key);
获取域数据
x. getRequestDispatcher()
获取请求转发对象
package cn.zsp.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class RequestAPIServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// i. getRequestURI()
// 获取请求的资源路径
System.out.println("URI是"+request.getRequestURI());
// ii. getRequestURLQ
// 获取请求的统一资源定位符(绝对路径)
System.out.println("URL是"+request.getRequestURL());
// iii. getRemoteHost( )
// 获取客户端的ip地址
System.out.println("IP是"+ request.getRemoteHost());
// iv. getHeader()
// 获取请求头
System.out.println("请求头是"+request.getHeader("Host"));
// vii. getMethod()
// 获取请求的方式GET或POST
System.out.println("请求方式是:"+ request.getMethod());
}
}
package cn.zsp.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
public class ParameterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username=req.getParameter("username");
String password=req.getParameter("password");
String[] hobby=req.getParameterValues("hobby");
System.out.println("用户名是:"+username);
System.out.println("密码是:"+password);
System.out.println("爱好是:"+ Arrays.asList(hobby));
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
// 设置请求体的字符集为UTF-8,从而解决post请求的中文乱码问题
String username=req.getParameter("username");
String password=req.getParameter("password");
String[] hobby=req.getParameterValues("hobby");
System.out.println("用户名是:"+username);
System.out.println("密码是:"+password);
System.out.println("爱好是:"+ Arrays.asList(hobby));
}
}
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://localhost:8080/07_servlet/parameterServlet" method="get">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
爱好:<input type="checkbox" name="hobby" value="java"/> java
<input type="checkbox" name="hobby" value="c"/> c
<input type="checkbox" name="hobby" value="c++"/> c++<br/>
<input type="submit"/>
</form>
<br/>
<br/>
<form action="http://localhost:8080/07_servlet/parameterServlet"
method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
爱好:<input type="checkbox" name="hobby" value="java"/> java
<input type="checkbox" name="hobby" value="c"/> c
<input type="checkbox" name="hobby" value="c++"/> c++<br/>
<input type="submit"/>
</form>
</body>
</html>