错误信息
Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /MyJsp.jsp at line 1613: 
14:   </head>
15:   <%! int id=0; %>
16:     <% id+=Integer.parseInt(request.getParameter("deptid")); %>
17:   <body>
18:     <div>
19:     <form method="post" action="getuser" name="getuser">
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
sei.servlet.LoginServlet.doGet(LoginServlet.java:74)
sei.servlet.LoginServlet.doPost(LoginServlet.java:80)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.parseInt(Integer.java:497)
org.apache.jsp.MyJsp_jsp._jspService(MyJsp_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
sei.servlet.LoginServlet.doGet(LoginServlet.java:74)
sei.servlet.LoginServlet.doPost(LoginServlet.java:80)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.LoginServlet:
package sei.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import sei.dao.factory.DAOFactory;
import sei.vo.User;
import sei.vo.XmlDate;public class LoginServlet extends HttpServlet {
/**
 * 
 */
private static final long serialVersionUID = 1L; //为客户端的get请求作响应
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//取得参数,用户名和密码
String username = req.getParameter("username");
String password = req.getParameter("password");
//把参数打包成为对象
User user = new User();
user.setUserName(username);
user.setPassword(password);
//调用对象,判断是否登陆成功
boolean isValide = false; 
int deptid=0;
try {
isValide = DAOFactory.getIUserDAOInstance().findLogin(user);
} catch (Exception e) {
e.printStackTrace();
}
//要跳转到的页面
String forwardPage = "";
//如果数据库有数据,返回true,则表示登录成功
if (isValide) {
System.out.println("登录成功!--"+ new XmlDate());
//
try {
//重新得到user对象,覆盖原来的那个简单对象
user = DAOFactory.getIUserDAOInstance().findByName(username);
} catch (Exception e) {
e.printStackTrace();
}
//这里写跳转代码,以及session设置
//这个就是设置登录验证的了,每个需要验证的页面,只要先判断userid属性是否为空即可
//其实应该是找出整个user的属性,必要的都加到session之中。session是一次回话。
req.getSession().setAttribute("userid", user.getUserID());
req.getSession().setAttribute("realname", user.getRealName());
if(user.getRealName().equals("".trim()) || null== user.getRealName()){
//要是真实姓名为空的话,那么就设置其用户名为realname
req.getSession().setAttribute("realname", user.getUserName());
deptid=deptid+user.getNewsKindID();
req.getSession().setAttribute("deptid", deptid);
}
forwardPage = "MyJsp.jsp";
;
} else{
// 否则,就是登录失败
System.out.println("错误的用户名或密码!--"+ new XmlDate());
//这里写跳转代码,以及session设置
req.getSession().removeAttribute("realname");
req.getSession().removeAttribute("userid");
forwardPage = "failure.jsp";
}
req.getRequestDispatcher(forwardPage).forward(req, resp); // 跳转
} protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//使用doGet,不再单独写代码
this.doGet(req, resp);
}}MyJSP:<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'MyJsp.jsp' starting page</title>  </head>
  <%! int id=0; %>
    <% id+=Integer.parseInt(request.getParameter("deptid")); %>
  <body>
    <div>
    <form method="post" action="getuser" name="getuser">
    
    <a href="getusermanagement.jsp"><input type="hidden" name="deptid" value="<%=id %>"/>查看记者列表 </a>
    </form>    </div>
  </body>
</html>

解决方案 »

  1.   

    java.lang.NumberFormatException: nulldeptid为空还有deptid=deptid+user.getNewsKindID();  返回的是纯数字字符串吗有debug跟踪看看
      

  2.   

    你用的是session:req.getSession().setAttribute("deptid", deptid);怎么能用request.getParameter("deptid"); 应该用session.getAttribute("deptid"); 
    request.getParamerter一般是在前台向后台传数据,或者在url上有参数时才用的;
    而且就算是request.setAttribute那也应该用request.getAttribute来获取
      

  3.   


    <%
    String str = session.getAttribute("deptid");/*你后台是session发过来的,所以用session取*/
    if(str != null) {/*通常有一步判空的逻辑*/
         id += Integer.parseInt(str);
    }
    %>
      

  4.   

    虽然我知道   一个简单int类型的和一个integer类型的可以直接相加  没有任何问题  但我还是想知道它的工作原理是什么  也就是说在内存中它实际上是作了什么样的事情~
    求高手解释public class test5{
    public static void main(String[] args){
    int i=10;
    Integer j=new Integer(10);
    System.out.println(i+j);
    }
    }就上面的代码 有人能告诉我嘛?