exception org.apache.jasper.JasperException: An exception occurred processing JSP page /adduser.jsp at line 1815: %> 
16:  
17: <% 
18:  String username = new String(request.getParameter("username").getBytes("ISO-8859-1"));
19:  String password = new String(request.getParameter("password").getBytes("ISO-8859-1")); 
20:         String profession = new String(request.getParameter("profession").getBytes("ISO-8859-1")); 
21:  String email = new String(request.getParameter("email").getBytes("ISO-8859-1"));     
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.apache.jsp.adduser_jsp._jspService(adduser_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 代码:
<%@page contentType="text/html;charset=gb2312"%> 
<%@page import="java.sql.*"%> 
<%! 
public static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
public static final String DBURL = "jdbc:sqlserver://localhost:1433; DatabaseName = e_onlineroom"; 
public static final String DBUSER = "sa" ; 
public static final String DBPASS = "sa" ; 
 
%> 
<%   
Connection conn=null;//定义数据库连接对象 
Statement stmt=null;//定义结果集对象 
ResultSet rs=null ;//定义SQL对象结果集  
%> 
 
<% 
String username = new String(request.getParameter("username").getBytes("ISO-8859-1"));
String password = new String(request.getParameter("password").getBytes("ISO-8859-1")); 
        String profession = new String(request.getParameter("profession").getBytes("ISO-8859-1")); 
String email = new String(request.getParameter("email").getBytes("ISO-8859-1"));     
%>  
 
<% 
try 

Class.forName(DBDRIVER) ; 
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;//建立与数据库的连接 
            stmt=conn.createStatement();  
            String sql="select * from huiyuan where username='"+username+"'";         
rs=stmt.executeQuery(sql);  
if(rs.next()){
%>
    <script language="javascript">
     alert("此用户名已经存在,请重新注册!")
     history.back;
    </script>
<% 
}else{
String str = "INSERT INTO huiyuan VALUES('"+username+"','"+password+"','"+profession+"','"+email+"')";
stmt.executeUpdate(str);
%>
        <script language="javascript">
     alert("注册成功!")
    window.location.herf=("../login.jsp");
    </script>
<% 
}
rs.close();
stmt.close();
conn.close();
       }catch(Exception e ){ 
 

 %>  
 <% out.println(request.getParameter("username"));%>

解决方案 »

  1.   

    request.getParameter("username") 可能为null
      

  2.   

    import="java.util.*" 把这个包导进去
      

  3.   

    应该是request.getParameter("username")为null,所以报空指针异常
      

  4.   

    java.lang.NullPointerException
    你看看后台怎么报错的, 你先拿出username ,判断是否为null在做转换ISO8859-1 ;
      

  5.   

    18: String username = new String(request.getParameter("username").getBytes("ISO-8859-1"));
    username是空的,楼主你看下上个页面中文本框的用户名称叫username
      

  6.   

    public static final String DBURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = e_onlineroom";  楼主看下,你的DatabaseName前面是不是有个空格,把空格去掉,可能取不到数据里的username值。
      

  7.   

    我觉得  是<form> 表单中的 不是username   所以才为null的
      

  8.   

    我把部分代码改成这样  结果正确了,但是没有转码会不会出现乱码呀  
    String username = request.getParameter("username");
    //username = new String(username.getBytes("ISO-8859-1"));
    String password = request.getParameter("password"); 
            String profession = request.getParameter("profession"); 
    String email = request.getParameter("email"); 
      

  9.   


    我把部分代码改成这样 结果正确了,但是没有转码会不会出现乱码呀   
    String username = request.getParameter("username");
    //username = new String(username.getBytes("ISO-8859-1"));
    String password = request.getParameter("password");  
      String profession = request.getParameter("profession");  
    String email = request.getParameter("email");