request

主要方法

public String getParameter(String name)

  • 获取指定名称的请求参数值。如果请求中没有该参数,则返回 null
  • 示例:String userName = request.getParameter("userName");

public String[] getParameterValues(String name)

  • 获取指定名称的所有请求参数值(适用于多选或多个同名参数)。如果请求中没有该参数,则返回 null
  • 示例:String[] hobbies = request.getParameterValues("hobby");
<form action="displayHobbies.jsp" method="post">
    <p><input type="checkbox" name="hobby" value="Reading"> Reading</p>
    <p><input type="checkbox" name="hobby" value="Sports"> Sports</p>
    <p><input type="checkbox" name="hobby" value="Music"> Music</p>
    <p><input type="submit" value="提交"></p>
</form>
<ul>
    <%
    // 获取所有"hobby"参数的值
    String[] hobbies = request.getParameterValues("hobby");

    // 检查参数是否存在
    if (hobbies != null && hobbies.length > 0) {
        for (String hobby : hobbies) {
            out.println("<li>" + hobby + "</li>");
        }
    } else {
        out.println("<li>No hobbies selected.</li>");
    }
    // toString() 方法直接打印数组
    out.println("hobbies = " + Arrays.toString(hobbies));
    %>
</ul>

public Map<String, String[]> getParameterMap()

  • 获取所有请求参数及其值的映射。
  • 示例:Map<String, String[]> params = request.getParameterMap();

public Enumeration<String> getParameterNames()

  • 获取所有请求参数的名称。
  • 示例:Enumeration<String> paramNames = request.getParameterNames();

public String getMethod()

  • 获取请求的方法(如 GETPOST)。
  • 示例:String method = request.getMethod();

public String getHeader(String name)

  • 获取指定名称的请求头值。
  • 示例:String userAgent = request.getHeader("User-Agent");

public Enumeration<String> getHeaders(String name)

  • 获取指定名称的所有请求头值。
  • 示例:Enumeration<String> headers = request.getHeaders("Accept-Language");

public Cookie[] getCookies()

  • 获取所有的Cookies。
  • 示例:Cookie[] cookies = request.getCookies();

public String getRemoteAddr()

  • 获取客户端的IP地址。
  • 示例:String clientIP = request.getRemoteAddr();

public String getContextPath()

  • 获取应用的上下文路径。
  • 示例:String contextPath = request.getContextPath();

get 与 post 区别

比较项 get post
缓存 可以 不可以
收藏为书签 可以 不可以
数据长度 有限制(URL 的最大长度是 2048 个字符) 无限制
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
对数据类型的限制 只允许 ASCII 字符 没有限制。也允许二进制数据
安全性 不安全 安全
可见性 数据在 URL 中对所有人都是可见的 数据不会显示在 URL 中

存取属性

getAttributesetAttribute 用于在请求范围内存储和获取对象。这些方法允许在处理请求的过程中将数据保存到请求作用域中,这样在同一请求的不同阶段或者不同的Servlet/JSP之间可以共享数据。

setAttribute(String name, Object o)

  • 该方法用来将一个对象与给定的名字关联起来,并将其存储在请求作用域内。如果已经存在同名的对象,则新的对象会覆盖旧的对象。

getAttribute(String name)

  • 该方法根据指定的名字从请求作用域中获取对象。如果不存在这样的属性,则返回 null
// 错误示范
String mess = request.getAttribute("mess");
mess.length();

// 正确示范
// 2、它的返回值类型是Object类型,需要做数据类型的转换
String mess = (String)request.getAttribute("mess");
// 1、在使用属性值的时候要做非空判断,否则会出现空指针异常
if (mess != null) {
    // 在请求中取到"mess"属性对应的属性值,正常使用mess数据
} else {
    // 在请求中没有取到"mess"属性对应的属性值,使用备选方案
}

需要注意的是,这些属性只在单个请求生命周期内有效,一旦请求完成,这些属性就会被销毁。如果需要跨多个请求持久化数据,那么应该考虑使用 HttpSessionsetAttributegetAttribute 方法。

getAttributegetParameter 的区别

getAttribute 用于获取在服务器端设置的属性值,这些属性可以在请求、会话或应用范围内共享。

方法签名

Object getAttribute(String name);
  • 用途:从请求、会话或应用上下文中获取属性值。
  • 常见应用场景:在过滤器或拦截器中设置的属性;在一个Servlet中设置并在另一个Servlet中使用的属性;存储用户会话信息。

getParameter 用于获取客户端通过HTTP请求传递的参数值。

方法签名

String getParameter(String name);
String[] getParameterValues(String name);
  • 用途:从 HTTP 请求中获取客户端传递的参数值。
  • 常见应用场景:表单提交的数据(如文本框、复选框等);URL 中的查询参数(如 ?name=value)。
上一篇:对一个数据库中的所有表格的所有字符串字段 ,进行文本替换 将 A字符串, 替换为 B字符串


下一篇:基于Java公益志愿捐赠管理系统设计与实现(源码+LW+调试+开题报告)