标签:bsp public asm except 解决方法 cep 程序 需要 ima
如果表单是采用get方法提交,这时候可以使用
1.request.getQueryString();//直接获取到uri后面的所有内容,不方便分离参数。
2.request.getParameter("名称");//通过表单属性的名称来获取值
request.getParameterNames();//获取表单属性中所有的名称
如果表单是采用post方法提交,这时候可以使用
1.request.getInputStream();//直接可以获取到实体内容中的参数,不方便分离参数
2.request.getParameter("名称");//通过表单中属性的名称获取对应的内容
request.getParameterNames();//获取表单中所有属性名称的值
1 @WebServlet("/RequestDemo5") 2 public class RequestDemo5 extends HttpServlet { 3 /** 4 * 获取Get方式和Post方式提交的参数 5 * @author MaoDoer 6 * 7 */ 8 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 9 /* System.out.println("GET方式"); 10 //接收Get方式提交的参数 11 String value = request.getQueryString(); 12 System.out.println(value);*/ 13 14 /** 15 * 统一方便的获取请求参数的方法 16 */ 17 System.out.println(request.getMethod()+"方式提交"); 18 String name=request.getParameter("name");//这里的名称用的是表单属性里的name属性 19 String pwd = request.getParameter("password"); 20 System.out.println(name+"="+pwd); 21 22 System.out.println("===================================="); 23 //获取表单中所有的参数名称 24 Enumeration<String> enums = request.getParameterNames(); 25 while(enums.hasMoreElements()){ 26 String paramName = enums.nextElement(); 27 String paramValue = request.getParameter(paramName); 28 System.out.println(paramName+"="+paramValue); 29 } 30 } 31 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 /* System.out.println("POST方式"); 33 ServletInputStream in = request.getInputStream(); 34 byte[] buf=new byte[1024]; 35 int len=0; 36 while((len=in.read(buf))!=-1){ 37 System.out.println(new String(buf,0,len)); 38 }*/ 39 40 /* System.out.println("Post方式提交"); 41 String name=request.getParameter("name");//这里的名称用的是表单属性里的name属性 42 String pwd = request.getParameter("password"); 43 System.out.println(name+"="+pwd); 44 45 System.out.println("===================================="); 46 //获取表单中所有的参数名称 47 Enumeration<String> enums = request.getParameterNames(); 48 while(enums.hasMoreElements()){ 49 String paramName = enums.nextElement(); 50 String paramValue = request.getParameter(paramName); 51 System.out.println(paramName+"="+paramValue); 52 }*/ 53 54 //调用doGet方法 55 this.doGet(request, response); 56 } 57 }
在doGet和doPost方法中获取参数中都可以使用request.getParameter();方法和request.getParameterNames();方法,这样代码就出现了重复,所以可以在doPost代码中调用doGet方法,传入request和response。
String[] hobits=request.getParameterValues("hobit");
for(String hobit:hobits){
System.out.println(hobit+",");
}
while(enums.hasMoreElements()){ String paramName = enums.nextElement(); //如果参数是hobit,则调用getParameterValues() if("hobit".equals(paramName)){ String[] hobits=request.getParameterValues("hobit"); System.out.print(paramName+"="); for(String hobit:hobits){ System.out.print(hobit+","); } System.out.println(); }else{ String paramValue = request.getParameter(paramName); System.out.println(paramName+"="+paramValue); } }
在html网页中输入的是字符,在html文件中声明是使用utf-8进行编码,当把内容提交到服务器之后,使用的是utf-8进行编码的字节,String name=request.getParameter("name");这时name出现了乱码是因为这一方法默认使用的是iso-8859-1进行解码。
手动解码:iso-8859-1字符串-》utf-8字符串
String name=request.getParameter("name");
name=new String(name.getByte("iso-8859-1"),"utf-8");
这个方法应该放置于获取参数request.getParameter()方法之前。
还有另外的一种不推荐的方法,那就是修改服务器的配置文件。
标签:bsp public asm except 解决方法 cep 程序 需要 ima
原文地址:http://www.cnblogs.com/binklei/p/6414443.html