前面的学习已经或多或少都接触到了一些 API, 今天会额外介绍些之前文章没有用到而日常开发中可能会用到的一些 API。话不多说,直接干:
代码实操
@WebServlet(urlPatterns = {"/request"})
public class RequestServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// web/img/lyf.jpeg 实际目录 E:\IdeaProjects\ServletDemo\out\artifacts\ServletDemo_war_exploded\img\lyf.jpeg
String realPath = getServletContext().getRealPath("/img/lyf.jpeg");
System.out.println(realPath);
// 获取上下文 context: /ServletDemo_war_exploded
String contextPath = getServletContext().getContextPath();
System.out.println("context: " + contextPath);
// URI: /ServletDemo_war_exploded/request
String requestURI = req.getRequestURI();
System.out.println("URI: " + requestURI);
//URL: http://localhost:8080/ServletDemo_war_exploded/request
StringBuffer requestURL = req.getRequestURL();
System.out.println("URL: " + requestURL);
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36
String userAgent = req.getHeader("user-agent");
System.out.println(userAgent);
// localhost
String serverName = req.getServerName();
System.out.println(serverName);
// HTTP/1.1
String protocol = req.getProtocol();
System.out.println(protocol);
// GET
String method = req.getMethod();
System.out.println(method);
}
}
代码中主要罗列了 request 对象的相关 API , 比如获取参数、获取服务器信息、获取协议、获取请求头、获取应用上下文等等。我这里只是抛砖引玉,大家可以通过 servlet 文档或者IDE的代码提示尝试其他的 API。不要怕麻烦,多敲才会有感觉。
关于应用上下文 contextPath, 大家可以简单理解成一个应用部署在服务器上后的根路径,与应用一 一对应, 首次部署的时候支持手动设定:
恭喜你完成今天的课程,每天10 分钟,学的轻松,学的开心~
如果觉得还不错的话,关注、分享、在看(关注不失联~), 原创不易,且看且珍惜~