jsp request获取表单参数和解决中文乱码

提出问题

创建注册页面 reg.jsp ,内容如下:

  1. <form method="post" action="doLogin.jsp">
  2. 用户名:<input name="username"><br>
  3. 密码:<input name="password"><br>
  4. 性别:<input name="sex" value="0" type="radio">
  5. <input name="sex" value="1" type="radio"><br>
  6. 爱好:<input name="like" value="wzry" type="checkbox">王者荣耀
  7. <input name="like" value="cj" type="checkbox">吃鸡
  8. <input name="like" value="dy" type="checkbox">抖音
  9. <input value="登录" type="submit">
  10. </form>

如何让 java 代码可以获取表单中的参数?

获取参数方法

  • getParameter() 获取请求的参数,如表单数据、url中的参数
  • getParameterValues() 同 getParameter(),在多个值的时候使用,如:获取 checkbox 控件值

例子

创建 doReg.jsp ,内容如下:

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%
  3. String username=request.getParameter("username");
  4. String password=request.getParameter("password");
  5. String sex=request.getParameter("sex");
  6. String[] like=request.getParameterValues("like");
  7. out.println("用户名:"+username+"<br>");
  8. out.println("密码:"+password+"<br>");
  9. out.println("性别:"+sex+"<br>");
  10. out.println("爱好:");
  11. for(String item:like){
  12. out.println(item);
  13. }
  14. %>
  15. <br>
  16. <br>
  17. 请求的资源路径:<%=request.getRequestURI()%><br>
  18. 请求的资源路径:<%=request.getRequestURL()%><br>
  19. <br>
  20. 协议:<%=request.getScheme()%><br>
  21. 服务主机名:<%=request.getServerName()%><br>
  22. 服务端口号:<%=request.getServerPort()%><br>
  23. 上下文:<%=request.getContextPath()%><br>
  24. <br>
  25. 客户端ip:<%=request.getRemoteHost()%><br>
  26. 请求方法:<%=request.getMethod()%><br>
  27. User-Agent:<%=request.getHeader("User-Agent")%><br>

修改 reg.jsp 表单,提交到 doReg.jsp

例子:中文乱码

在上面例子中,如果 用户名 填中文,将会是乱码,解决方法:

在 doLogin.jsp 开始处增加下面代码:

  1. request.setCharacterEncoding("UTF-8");

原文出处:http://malaoshi.top/show_1IXy53Xr5R8.html