您的位置:首页 > 游戏 > 游戏 > 成都网络科技公司排名_橙子建站是什么平台可靠吗_seo优化方式_上海网络推广需要多少

成都网络科技公司排名_橙子建站是什么平台可靠吗_seo优化方式_上海网络推广需要多少

2025/5/3 14:14:21 来源:https://blog.csdn.net/qq_48763502/article/details/147027163  浏览:    关键词:成都网络科技公司排名_橙子建站是什么平台可靠吗_seo优化方式_上海网络推广需要多少
成都网络科技公司排名_橙子建站是什么平台可靠吗_seo优化方式_上海网络推广需要多少

HttpServletRequest 和 HttpServletResponse 详解

1. HttpServletRequest(HTTP 请求对象)

HttpServletRequest 是 Java Servlet API 提供的接口,用于封装客户端的 HTTP 请求信息。它继承自 ServletRequest,并增加了 HTTP 协议相关的功能。

1.1 核心功能

(1) 获取请求参数
  • getParameter(String name)
    获取单个请求参数(如表单字段、URL 查询参数)。
    String username = request.getParameter("username");
    
  • getParameterValues(String name)
    获取多个同名参数(如复选框、多选列表)。
    String[] hobbies = request.getParameterValues("hobby");
    
  • getParameterMap()
    返回所有请求参数的 Map<String, String[]>
    Map<String, String[]> paramMap = request.getParameterMap();
    
(2) 获取请求头信息
  • getHeader(String name)
    获取单个请求头(如 User-AgentCookie)。
    String userAgent = request.getHeader("User-Agent");
    
  • getHeaders(String name)
    返回指定请求头的所有值(如多个 Accept 头)。
    Enumeration<String> acceptHeaders = request.getHeaders("Accept");
    
  • getHeaderNames()
    返回所有请求头名称。
    Enumeration<String> headerNames = request.getHeaderNames();
    
(3) 获取客户端和服务器信息
  • getRemoteAddr()
    获取客户端 IP 地址。
    String ip = request.getRemoteAddr();
    
  • getMethod()
    获取 HTTP 方法(GETPOSTPUTDELETE 等)。
    String method = request.getMethod();
    
  • getRequestURL()
    返回完整的请求 URL(StringBuffer 类型)。
    StringBuffer url = request.getRequestURL();
    
  • getRequestURI()
    返回请求的 URI(不包含协议、域名和端口)。
    String uri = request.getRequestURI(); // 如 "/app/login"
    
(4) 获取会话(Session)
  • getSession()
    获取当前会话,如果不存在则创建新会话。
    HttpSession session = request.getSession();
    
  • getSession(boolean create)
    如果 create=false,仅获取现有会话,不创建新会话。
    HttpSession session = request.getSession(false);
    
(5) 获取请求体(Body)
  • getInputStream()
    获取 ServletInputStream,用于读取二进制数据(如文件上传)。
    ServletInputStream inputStream = request.getInputStream();
    
  • getReader()
    获取 BufferedReader,用于读取文本数据(如 JSON、XML)。
    BufferedReader reader = request.getReader();
    
(6) 属性(Attribute)管理
  • setAttribute(String name, Object value)
    存储请求范围内的属性(可用于 JSP 或转发)。
    request.setAttribute("message", "Hello");
    
  • getAttribute(String name)
    获取请求属性。
    String msg = (String) request.getAttribute("message");
    
  • removeAttribute(String name)
    移除请求属性。
    request.removeAttribute("message");
    

2. HttpServletResponse(HTTP 响应对象)

HttpServletResponse 是 Java Servlet API 提供的接口,用于封装服务器对客户端的 HTTP 响应。它继承自 ServletResponse,并增加了 HTTP 协议相关的功能。

2.1 核心功能

(1) 设置响应状态
  • setStatus(int sc)
    设置 HTTP 状态码(如 200404500)。
    response.setStatus(HttpServletResponse.SC_OK); // 200
    
  • sendError(int sc, String msg)
    发送错误状态码和消息(如 404 Not Found)。
    response.sendError(HttpServletResponse.SC_NOT_FOUND, "Page not found");
    
(2) 设置响应头
  • setHeader(String name, String value)
    设置响应头(如 Content-TypeCache-Control)。
    response.setHeader("Content-Type", "text/html");
    
  • addHeader(String name, String value)
    添加多个同名响应头(如多个 Set-Cookie)。
    response.addHeader("Set-Cookie", "user=admin");
    
  • setContentType(String type)
    设置内容类型(如 text/htmlapplication/json)。
    response.setContentType("application/json");
    
  • setCharacterEncoding(String charset)
    设置字符编码(如 UTF-8)。
    response.setCharacterEncoding("UTF-8");
    
(3) 写入响应数据
  • getOutputStream()
    获取 ServletOutputStream,用于写入二进制数据(如图片、文件)。
    ServletOutputStream out = response.getOutputStream();
    out.write(bytes);
    
  • getWriter()
    获取 PrintWriter,用于写入文本数据(如 HTML、JSON)。
    PrintWriter writer = response.getWriter();
    writer.println("<h1>Hello World</h1>");
    
(4) 重定向
  • sendRedirect(String location)
    发送 302 重定向到指定 URL。
    response.sendRedirect("/login");
    
(5) Cookie 管理
  • addCookie(Cookie cookie)
    向客户端添加 Cookie。
    Cookie cookie = new Cookie("username", "admin");
    response.addCookie(cookie);
    
(6) 缓存控制
  • setDateHeader(String name, long date)
    设置日期型响应头(如 Expires)。
    response.setDateHeader("Expires", System.currentTimeMillis() + 3600000);
    

3. 实际应用示例

示例 1:登录表单处理

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {String username = request.getParameter("username");String password = request.getParameter("password");if ("admin".equals(username) && "123456".equals(password)) {// 登录成功,存储 SessionHttpSession session = request.getSession();session.setAttribute("user", username);// 重定向到首页response.sendRedirect("/home");} else {// 登录失败,返回错误response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<h1>Login Failed</h1>");}
}

示例 2:返回 JSON 数据

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setContentType("application/json");response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String json = "{\"name\":\"John\", \"age\":30}";out.print(json);
}

4. 总结

功能HttpServletRequestHttpServletResponse
获取请求数据getParameter(), getHeader()-
获取会话getSession()-
读取请求体getInputStream(), getReader()-
设置响应数据-getOutputStream(), getWriter()
设置状态码-setStatus(), sendError()
设置响应头-setHeader(), addHeader()
重定向-sendRedirect()
Cookie 管理getCookies()addCookie()

这两个对象是 Java Web 开发的核心,几乎所有 Web 框架(如 Spring MVC)底层都依赖它们进行 HTTP 请求和响应处理。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com