现在的位置: 首页 > 综合 > 正文

JSP基础语法之六:request对象,1用getParameterNames取得checkbox全部值,2解决getParameter中文乱码

2013年04月05日 ⁄ 综合 ⁄ 共 1169字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.