今天使用jsp来写一段代码,插入用户信息的时候,插入了一个用户名为C#的用户,结果是成功的插入了这一条记录,但是当我使用这个字段来查找用户时,在数据库中查找可以查找到,通过jsp页面却显示空指针异常(其他记录都没有产生空异常),求教是否与#这个符号有关系,因为没有#的记录都可以从jsp页面查找到。注:数据库为mysql数据库,数据库和页面编码都是gbk;

解决方案 »

  1.   

    我一直用oracle,没用过mysql。不过感觉应该不会有问题吧?
      

  2.   

    oracle编码的中文问题,我没试过,也没遇见过。最后把这个问题研究了一下 ,貌似在gbk编码的时候#号被当特殊符号看,中文的时候也是会出现一样的问题。最后我是这样解决的,第一种方法是,修改tomcat服务器的uri编码为gbk,其实这种做法不是很好,我试了之后发现解决这个问题还会带来其它问题;第二种做法是,使发送请求时使用的编码(考虑请求参数可能会出现中文)与tomcat服务器的uri编码一致,一般tomcat默认的uri编码是utf-8的,所以我只需要在发送请求时使用URLEncoder.encode()来编码即可
      

  3.   

    oracle编码的中文问题,我没试过,也没遇见过。最后把这个问题研究了一下 ,貌似在gbk编码的时候#号被当特殊符号看,中文的时候也是会出现一样的问题。最后我是这样解决的,第一种方法是,修改tomcat服务器的uri编码为gbk,其实这种做法不是很好,我试了之后发现解决这个问题还会带来其它问题;第二种做法是,使发送请求时使用的编码(考虑请求参数可能会出现中文)与tomcat服务器的uri编码一致,一般tomcat默认的uri编码是utf-8的,所以我只需要在发送请求时使用URLEncoder.encode()来编码即可 
      

  4.   

    楼主在jsp显示的代码是怎么写的 贴出来看看
      

  5.   

    好的 代码是这样的
    <%@page pageEncoding="gbk" contentType="text/html;charset=gbk"%>
    <%@page import="entity.*,java.util.*" %>
    <%@page import="java.net.URLEncoder"%>
    <html>
    <head>
    <title>emplist</title>
    <meta http-equiv="content-type" content="text/html;charset=gbk"/>
    <link rel="stylesheet" type="text/css" href="css/style.css" />
    </head>
    <body>
    <div id="wrap">
    <div id="top_content">
    <div id="header">
    <div id="rightheader">
    <p>
    2012/04/18
    <br />
    </p>
    </div>
    <div id="topheader">
    <h1 id="title">
    <a href="#">Main</a>
    </h1>
    </div>
    <div id="navigation">
    </div>
    </div> <div id="content">
    <p id="whereami">
    </p>
    <h1>
    Welcome!
    </h1>
    <table class="table">
    <tr class="table_header">
    <td>
    ID
    </td>
    <td>
    Username
    </td>
    <td>
    Gendar
    </td>
    <td>
    Age
    </td>
    <td>pa </td>
    </tr>
    <% List<User> users = (List<User>)request.getAttribute("users"); 
    for(int i = 0;i < users.size();i++)
    {
          User u = users.get(i);
     %>
    <tr class="row1">
    <td>
    <%=u.getId() %>
    </td>
    <td>
    <%=u.getUsername() %>
    </td>
    <td>
    <%=u.getSex() %>
    </td>
    <td>
    <%=u.getAge() %>
    </td>
    <td>
    <a href="userList.do?username=<%=URLEncoder.encode(u.getUsername(),"utf-8") %>">详细</a>
    </td>
    </tr>
    <%
    } %>
    </table>
    <p>
    <input type="button" class="button" value="退出系统"
    onclick="location='login.jsp'" />
    </p>
    </div>
    </div>
    <div id="footer">
    <div id="footer_bg">
    [email protected]
    </div>
    </div>
    </div>
    </body>
    </html>
    考虑到中文问题 给详细那个链接的username参数进行了编码