提出问题
创建注册页面 reg.jsp ,内容如下:
<form method="post" action="doLogin.jsp">
用户名:<input name="username"><br>
密码:<input name="password"><br>
性别:<input name="sex" value="0" type="radio">女
<input name="sex" value="1" type="radio">男<br>
爱好:<input name="like" value="wzry" type="checkbox">王者荣耀
<input name="like" value="cj" type="checkbox">吃鸡
<input name="like" value="dy" type="checkbox">抖音
<input value="登录" type="submit">
</form>
如何让 java 代码可以获取表单中的参数?
获取参数方法
- getParameter() 获取请求的参数,如表单数据、url中的参数
- getParameterValues() 同
getParameter()
,在多个值的时候使用,如:获取 checkbox 控件值
例子
创建 doReg.jsp ,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
String sex=request.getParameter("sex");
String[] like=request.getParameterValues("like");
out.println("用户名:"+username+"<br>");
out.println("密码:"+password+"<br>");
out.println("性别:"+sex+"<br>");
out.println("爱好:");
for(String item:like){
out.println(item);
}
%>
<br>
<br>
请求的资源路径:<%=request.getRequestURI()%><br>
请求的资源路径:<%=request.getRequestURL()%><br>
<br>
协议:<%=request.getScheme()%><br>
服务主机名:<%=request.getServerName()%><br>
服务端口号:<%=request.getServerPort()%><br>
上下文:<%=request.getContextPath()%><br>
<br>
客户端ip:<%=request.getRemoteHost()%><br>
请求方法:<%=request.getMethod()%><br>
User-Agent:<%=request.getHeader("User-Agent")%><br>
修改 reg.jsp 表单,提交到 doReg.jsp
例子:中文乱码
在上面例子中,如果 用户名 填中文,将会是乱码,解决方法:
在 doLogin.jsp 开始处增加下面代码:
request.setCharacterEncoding("UTF-8");