目录

  1. 表单处理流程
  2. 常见的表单处理方法
  1. 示例代码
  2. 参考资料

表单处理流程

在 JSP 中,表单处理主要依赖 request 隐式对象(javax.servlet.http.HttpServletRequest)来获取客户端提交的数据。表单数据通过 HTML 的 <form> 标签提交,JSP 页面利用 request 对象的方法提取参数并进行处理,通常结合逻辑判断或数据库操作后返回响应。


常见的表单处理方法

2.1 获取单个参数

  • 方法request.getParameter(String name)
  • 作用:获取表单中指定名称的单个值。
  • 示例
  String username = request.getParameter("username");

2.2 获取多个参数值

  • 方法request.getParameterValues(String name)
  • 作用:获取同一参数名的多个值(如复选框)。
  • 示例
  String[] hobbies = request.getParameterValues("hobby");

2.3 处理 POST 请求

  • 作用:处理表单的 POST 提交,确保数据安全传输。
  • 示例
  if ("POST".equalsIgnoreCase(request.getMethod())) {
      String password = request.getParameter("password");
      out.println("密码: " + password);
  }

2.4 设置字符编码

  • 方法request.setCharacterEncoding(String charset)
  • 作用:避免中文乱码,需在获取参数前设置。
  • 示例
  request.setCharacterEncoding("UTF-8");
  String name = request.getParameter("name");

2.5 重定向或转发

  • 作用:处理完成后跳转页面。
  • 示例
  • 重定向:
    jsp response.sendRedirect("success.jsp");
  • 转发:
    jsp request.getRequestDispatcher("success.jsp").forward(request, response);

示例代码

以下是一个完整的表单处理示例:

  • form.html
  <form action="process.jsp" method="post">
      用户名: <input type="text" name="username"><br>
      爱好: <input type="checkbox" name="hobby" value="阅读">阅读
            <input type="checkbox" name="hobby" value="运动">运动<br>
      <input type="submit" value="提交">
  </form>
  • process.jsp
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      request.setCharacterEncoding("UTF-8");
      String username = request.getParameter("username");
      String[] hobbies = request.getParameterValues("hobby");
  %>
  用户名: <%=username%><br>
  爱好: <%
      if (hobbies != null) {
          for (String hobby : hobbies) {
              out.print(hobby + " ");
          }
      }
  %>

参考资料

  1. Oracle 官方文档
  1. JavaTpoint JSP 教程
  1. TutorialsPoint JSP 表单

如果需要更复杂的表单处理示例或有其他问题,请告诉我!