一:requset.getParameterNames()取得checkbox全部值
前台表单的复选框checkbox命名时统一以"_CB"结尾
后台通过String的结尾字符自动判断:是checkbox时用request.getParameterValues()
否则用request.getParameter()方法
<br><br><br>
<%
Enumeration enm = request.getParameterNames();
while(enm.hasMoreElements())
{
String eget = (String)enm.nextElement();
%>
Enumeration获得表单元素名称:<%=eget%>
<%
if(eget.endsWith("_CB"))/*checkbox命名时必须以"_CB"结尾*/
{
/*getParameterValues之前应该验证,否则不选CheckBox时会出NullPointerException*/
/*if(null != eget) 这验证过结尾字符了,所以不用再次验证*/
String[] eget_CB = request.getParameterValues(eget);
%> :以“_CB”结尾的checkBox的值: <%
for(int i=0;i<eget_CB.length;i++)
{
%>
<%=eget_CB[i]%>
<%
}
%> <br> <%
}
else
{
try
{
%>
普通参数值:<%=request.getParameter(eget)%> <br>
<%
}catch(Exception e){}
}
}
%>
二:两种解决reques接收中文时乱码的方法
方法二选其一,书上推荐前者
<%
//指定接收编码,只能在接收端指定
request.setCharacterEncoding("GBK");
//或使用下列方法重新创建一个字节型Srting。两种方法二选一
//String context = new String(request.getParameter("info").getBytes("ISO8859-1"));
%>
三:获取其他信息
<%
String method = request.getMethod();
String ip = request.getRemoteAddr();
String path = request.getServletPath();
String contextPath = request.getContextPath();
%>
<h2> 请求方式:<%=method%> </h2> //直接访问是GET,跳转过来时POST
<h2> IP地址:<%=ip%> </h2>
<h2> 访问路径:<%=path%> </h2>
<h2> 上下文路径:<%=contextPath%> </h2> //用于定位根目录下的文件
本文介绍了如何在后台处理带有复选框的表单数据,并针对中文参数提供了两种防止乱码的方法。此外,还展示了如何获取请求的基本信息,如请求方式、客户端IP等。
3939

被折叠的 条评论
为什么被折叠?



