一: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> //用于定位根目录下的文件