JSP中request与response操作详解:获取HTTP头与防盗链示例

0 下载量 16 浏览量 更新于2024-08-30 收藏 74KB PDF 举报
在Java Server Pages (JSP) 开发中,request和response对象是核心的对象,它们分别代表客户端向服务器发送的请求和服务器对请求的响应。这些对象的使用是基于HTTP协议,因此理解HTTP协议的基础至关重要。本文将详细介绍request和response对象在JSP中的具体用法。 request对象 request对象是HttpServletRequest的实例,它包含了客户端发送给服务器的所有信息。以下是一些常用的方法: 1. 获取请求头信息:`getHeader(String name)`方法用于获取请求头指定名称的单个值,如`String ip = request.getHeader("User-Agent");`获取用户代理信息。`getIntHeader(String name)`和`getDateHeader(String name)`则用于获取特定名字的整型和时间戳类型的请求头。对于多值请求头,可以使用`getHeaders(String name)`返回一个Enumeration<String>,遍历获取所有值。 2. 获取其他信息:`getRemoteAddr()`方法用来获取客户端的IP地址,`getMethod()`获取请求方法(GET或POST等)。 示例代码片段: ```java public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ip = request.getRemoteAddr(); String method = request.getMethod(); System.out.println("IP地址: " + ip); System.out.println("请求方法: " + method); // 其他操作,如获取请求头防盗链信息 String url = request.getHeader("Referer"); if (url != null && url.equalsIgnoreCase("example.com")) { // 防盗链逻辑 } // 其他request相关操作 getLiuLanQi(request); protectMethod(request, response); } ``` response对象 HttpServletResponse对象表示服务器向客户端发送的响应。常用的响应操作包括: 1. 设置状态码:`setIntHeader(String name, int value)`,例如设置HTTP状态码。 2. 设置响应头:`setHeader(String name, String value)`,例如设置Content-Type。 3. 发送响应数据:`printWriter`或`response.getWriter()`用于写入响应体,`sendRedirect(String location)`用于重定向到另一个URL。 示例代码片段: ```java public void protectMethod(HttpServletRequest request, HttpServletResponse response) { String url = request.getHeader("Referer"); // 防盗链处理 if (url == null || !url.equals("example.com")) { response.sendRedirect("error_page.html"); } } ``` JSP中的request和response对象是对HTTP协议的具体实现,通过这些对象,我们可以获取和处理客户端的请求信息,并向客户端发送定制的响应。理解并熟练运用这两个对象是构建动态Web应用的关键。