Request请求
请求的构成部分
1.请求行
url: 统一资源定位符
method: 请求方法
protocol: http协议版本
2.请求头
浏览器帮助开发人员获取客户端的一些信息(非涉密信息)
3.数据体
用于封装用户输入的参数
常用方法
package com.javakc.web1.user;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.util.Collection;
@WebServlet(
name = "UserServlet",
urlPatterns = "/user.do",
loadOnStartup = 0,
initParams = {
@WebInitParam(
name = "username",
value = "administrator"
),
@WebInitParam(
name = "password",
value = "123456"
)
}
)
//request常用方法
public class UserServlet6 extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取客户端请求方法
String method = request.getMethod();
System.out.println(method); //POST
//获取客户端请求URL
//URL是通过多个部分拼接完成
StringBuffer buffer = request.getRequestURL();
System.out.println(buffer); //http://localhost:8080/web1/user.do
//获取客户端请求URI
String uri = request.getRequestURI();
System.out.println(uri); ///web1/user.do
//获取客户端请求协议版本
String protocol = request.getProtocol();
System.out.println(protocol); //HTTP/1.1
//获取项目名称
String path = request.getContextPath();
System.out.println(path); ///web1
//获取客户端地区
String language = request.getHeader("Accept-Language");
System.out.println("language:" + language); //zh-CN,zh;q=0.9
//拦截其他网站的非法请求
//客户端请求来源
String referer = request.getHeader("Referer");
System.out.println(referer); // http://localhost:8080/web1/
if (!referer.equals("www.javakc90.com")) {
response.sendError(404);
}
//获取客户端操作系统|设备信息|浏览器版本|
String userAgent = request.getHeader("User-Agent");
System.out.println("userAgent:" + userAgent); //Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.71
//收集单个参数
String username = request.getParameter("username");
System.out.println("username:" + username);
String userage = request.getParameter("userage");
System.out.println("userage:" + userage);
String birthday = request.getParameter("birthday");
System.out.println("birthday:" + birthday);
//收集一组参数
String[] hobbys = request.getParameterValues("hobby");
if (null != hobbys && hobbys.length > 0) {
for (String hobby : hobbys) {
System.out.println(hobby);
}
}
//Servlet3.0+启用
//上传单个文件
Part part = request.getPart("loadFile");
System.out.println(part);
//上传多个文件
Collection<Part> parts = request.getParts();
for (Part p : parts) {
System.out.println(p);
}
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/web1/user.do" method="post"> <!--UserServlet doPost method!-->
<table>
<tr>
<td>姓名:<input type="text" name="username" value=""></td>
</tr>
<tr>
<td>年龄:<input type="number" name="userage" value=""></td>
</tr>
<tr>
<td>日期:<input type="date" name="birthday" value=""></td>
</tr>
<tr>
<td>爱好:
<input type="checkbox" name="hobby" value="1">爱好1
<input type="checkbox" name="hobby" value="2">爱好2
<input type="checkbox" name="hobby" value="3">爱好3
<input type="checkbox" name="hobby" value="4">爱好4
</td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>