一个普通的WEB工程web,一个jsp页面a.jsp,页面里面body中就下面两行代码:
param1:${param.singer }<br>
param2:<%=request.getParameter("singer") %>在浏览器中直接输入http://localhost:8080/web/a.jsp?singer=周,回车后,两个都取不到值,显示如下:
param1:
param2:null
在浏览器中直接输入http://localhost:8080/web/a.jsp?singer=aa,回车后,两个都能取到值,显示如下:
param1:aa
param2:aa
有哪位朋友遇到过这种问题啊?麻烦指教一下,非常感谢!!

解决方案 »

  1.   

    http://localhost:8080/web/a.jsp?singer=周
    请处理乱码~~~~~~
      

  2.   

    转码问题
    1、用El
    2、把取得的参数进行转码:String args= request.getParameter("groupname");
    String result = new String(args.getBytes("ISO-8859-1"),"UTF-8"); 
    3、使用过滤器来过滤
    4、把tomcat的server.xml文件中找到 <Connector…………,在后面加上URIEncoding="UTF-8"/>
      

  3.   

    问题是request.getParameter("singer") 根本取不值 ,得到不是乱码,是null。刚发现使用resin3.1.8取不值,tomcat下就可以取到值。
      

  4.   

    首先确认${param.singer }里是不是有值,即使是乱码也应该会显示出来的,只不过显示出来的是乱码。
    param2:<%=request.getParameter("singer") %>这个最好前面加个(String),request.getParameter("singer") 取出的是对象需要强转一下
      

  5.   


    如果singer在jsp中已经乱了,后来再取应该是取不到的!
      

  6.   

    在servlet里给request设定编码,比如UTF-8的时候:request.setCharacterEncoding("UTF-8");
      

  7.   

    这位大哥,您把浏览器编码设置为UTF-8试试先,不行把IDE也设置为UTF-8
      

  8.   

    最后自己按jstl的格式写了一个自定标签来,把所有中文都用java.net.URLEncoder.encode转下就OK了