session.setAttribute("logID",logid);//logid是从登录界面获得的用户id变量是int型;
在显示个人博客页面获得用户id成功:
String userid =(String)session.getAttribute("userID").toString();
想在显示个人信息页面同样获得,再写同样一句就提示错误:
String userid =(String)session.getAttribute("userID").toString();
错误信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /readblog.jsp at line 26
23:
24: </head>
25: <%
26: String userid =(String)session.getAttribute("userID").toString();
27: String logid=request.getParameter("id");
28: String username=null,author=null;
29: DB_Conn db_conn =new DB_Conn();
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)
root cause
java.lang.NullPointerException
org.apache.jsp.readblog_jsp._jspService(readblog_jsp.java:86)
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)
是不能在多个页面中引用啊,还是我写的有什么错误,请各高手指教!
26 个解决方案
#1
完全可以。
#2
String userid =(String)session.getAttribute("userID").
toString();
不要 toString()
因为如果你的 session 中如果不存在userID 会报空指针异常
你可以这样
String userid =session.getAttribute("userID")+"";
会自动转成 String
不要 toString()
因为如果你的 session 中如果不存在userID 会报空指针异常
你可以这样
String userid =session.getAttribute("userID")+"";
会自动转成 String
#3
String userid =(String)session.getAttribute("userID").toString();
报了空指针异常,应该是你的session中的数据丢失了.
你试试
String userid =(String)session.getAttribute("userID");
if(userid == null){
System.out.println("userid 为空了.");
}
你检查下自己的代码吧,这样用是没有问题的`肯定哪里出现了编码的逻辑错误.
报了空指针异常,应该是你的session中的数据丢失了.
你试试
String userid =(String)session.getAttribute("userID");
if(userid == null){
System.out.println("userid 为空了.");
}
你检查下自己的代码吧,这样用是没有问题的`肯定哪里出现了编码的逻辑错误.
#4
你明明是session.setAttribute("logID",logid);//
怎么取的时候变成
String userid =(String)session.getAttribute("userID").toString();
logID?userID?
既然已经用了(String)就不需要toString了,如果值是空的还会报错。
怎么取的时候变成
String userid =(String)session.getAttribute("userID").toString();
logID?userID?
既然已经用了(String)就不需要toString了,如果值是空的还会报错。
#5
对,如果你的session.getAttribute("userID")==null,你说还能toString()吗
#6
谢谢各位了!那是之前我写String userid =(String)session.getAttribute("userID");时报错,我自作聪明加上的toString().不过现在我去掉了,还是报错,只要有这句的页面都出错了
#7
session.setAttribute("logID",logid);//
你session里设的不是logID么,怎么取的时候用的userID?
#8
可以 String userid =(String)session.getAttribute("userID").toString(); 这一句出错啦 大家都说了,session里存的值跟你取得时候不一样啊
#9
7楼说的正确!!
#10
同意楼上
#11
这个倒也能获取到,你想要获取同样的ID,可以定义一个公共类,第一次取出ID时把userid保存在xxx类中里,xxxForm.setUserid(userid);第二次取比较容易取,而且不会出错...
#12
实践过。。是完全没有问题的!
#13
程序里都是userID,我发帖时不小心写错的,谢谢各位了,我也不知道怎么回事,我又改了一下午了,还是不行,不指示那句错了,但还是所有有那句的都错,同一个错误提示:java.lang.ClassCastException: java.lang.Integer;
org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.Integer
我再改改看吧,谢谢各位了!
org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.Integer
我再改改看吧,谢谢各位了!
#14
这个是数据类型转换错误啊,不是取值问题
#15
同意
#16
引用错了,重写一遍
出现了空指针一场,表示在某个地方,值为空。检查可知
session.setAttribute("logID",logid);
String userid =(String)session.getAttribute("userID").toString()
出现了错误。
原因:logID != userID
出现了空指针一场,表示在某个地方,值为空。检查可知
session.setAttribute("logID",logid);
String userid =(String)session.getAttribute("userID").toString()
出现了错误。
原因:logID != userID
#17
反正是可以引用同一个session
#18
你修改以后出现的错误时数据类型转换错误,应该不是这里出错了,仔细看看代码,是不是String类型与int型相互转化时侯代码写错了
#19
打个断点调试一下不就知道了!
#20
String userid =(String)session.getAttribute("logID")//
这样,不过你的的logid是int型的,也有可能(String) 有问题,换种转换方式
这样,不过你的的logid是int型的,也有可能(String) 有问题,换种转换方式
#21
session.setAttribute("logID",logid);
session.getAttribute("logID",logid);//
不用toString();
session.getAttribute("logID",logid);//
不用toString();
#22
Integer.parseInt(session.getAtrribute(XXXXX)).toString();
是否可行?????
是否可行?????
#23
把session的id取出来,然后别的页面通过id找session试试,这是我的想法,不一定好使哈
#24
一个Session是绝对可以在多个JSP页面引用的,因为我就用过,还有这个
session.setAttribute("logID",logid);//logid是从登录界面获得的用户id变量是int型;
在显示个人博客页面获得用户id成功:
String userid =(String)session.getAttribute("userID").toString();
想在显示个人信息页面同样获得,再写同样一句就提示错误:
String userid =(String)session.getAttribute("userID").toString();
toString()和(String)转换是不行的,而且你获得的Session一个是logID,一个是userID,名字应该一致吧。如果你用了Struts,转换问题还好解决。
session.setAttribute("logID",logid);//logid是从登录界面获得的用户id变量是int型;
在显示个人博客页面获得用户id成功:
String userid =(String)session.getAttribute("userID").toString();
想在显示个人信息页面同样获得,再写同样一句就提示错误:
String userid =(String)session.getAttribute("userID").toString();
toString()和(String)转换是不行的,而且你获得的Session一个是logID,一个是userID,名字应该一致吧。如果你用了Struts,转换问题还好解决。
#25
可以可以
#26
谢谢大家了!用session传int型的还得转来转去的,容易出错,最后改传的username,全是String型不用类型转换就没事了。谢谢各位了!呵呵
#1
完全可以。
#2
String userid =(String)session.getAttribute("userID").
toString();
不要 toString()
因为如果你的 session 中如果不存在userID 会报空指针异常
你可以这样
String userid =session.getAttribute("userID")+"";
会自动转成 String
不要 toString()
因为如果你的 session 中如果不存在userID 会报空指针异常
你可以这样
String userid =session.getAttribute("userID")+"";
会自动转成 String
#3
String userid =(String)session.getAttribute("userID").toString();
报了空指针异常,应该是你的session中的数据丢失了.
你试试
String userid =(String)session.getAttribute("userID");
if(userid == null){
System.out.println("userid 为空了.");
}
你检查下自己的代码吧,这样用是没有问题的`肯定哪里出现了编码的逻辑错误.
报了空指针异常,应该是你的session中的数据丢失了.
你试试
String userid =(String)session.getAttribute("userID");
if(userid == null){
System.out.println("userid 为空了.");
}
你检查下自己的代码吧,这样用是没有问题的`肯定哪里出现了编码的逻辑错误.
#4
你明明是session.setAttribute("logID",logid);//
怎么取的时候变成
String userid =(String)session.getAttribute("userID").toString();
logID?userID?
既然已经用了(String)就不需要toString了,如果值是空的还会报错。
怎么取的时候变成
String userid =(String)session.getAttribute("userID").toString();
logID?userID?
既然已经用了(String)就不需要toString了,如果值是空的还会报错。
#5
对,如果你的session.getAttribute("userID")==null,你说还能toString()吗
#6
谢谢各位了!那是之前我写String userid =(String)session.getAttribute("userID");时报错,我自作聪明加上的toString().不过现在我去掉了,还是报错,只要有这句的页面都出错了
#7
session.setAttribute("logID",logid);//
你session里设的不是logID么,怎么取的时候用的userID?
#8
可以 String userid =(String)session.getAttribute("userID").toString(); 这一句出错啦 大家都说了,session里存的值跟你取得时候不一样啊
#9
7楼说的正确!!
#10
同意楼上
#11
这个倒也能获取到,你想要获取同样的ID,可以定义一个公共类,第一次取出ID时把userid保存在xxx类中里,xxxForm.setUserid(userid);第二次取比较容易取,而且不会出错...
#12
实践过。。是完全没有问题的!
#13
程序里都是userID,我发帖时不小心写错的,谢谢各位了,我也不知道怎么回事,我又改了一下午了,还是不行,不指示那句错了,但还是所有有那句的都错,同一个错误提示:java.lang.ClassCastException: java.lang.Integer;
org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.Integer
我再改改看吧,谢谢各位了!
org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.Integer
我再改改看吧,谢谢各位了!
#14
这个是数据类型转换错误啊,不是取值问题
#15
同意
#16
引用错了,重写一遍
出现了空指针一场,表示在某个地方,值为空。检查可知
session.setAttribute("logID",logid);
String userid =(String)session.getAttribute("userID").toString()
出现了错误。
原因:logID != userID
出现了空指针一场,表示在某个地方,值为空。检查可知
session.setAttribute("logID",logid);
String userid =(String)session.getAttribute("userID").toString()
出现了错误。
原因:logID != userID
#17
反正是可以引用同一个session
#18
你修改以后出现的错误时数据类型转换错误,应该不是这里出错了,仔细看看代码,是不是String类型与int型相互转化时侯代码写错了
#19
打个断点调试一下不就知道了!
#20
String userid =(String)session.getAttribute("logID")//
这样,不过你的的logid是int型的,也有可能(String) 有问题,换种转换方式
这样,不过你的的logid是int型的,也有可能(String) 有问题,换种转换方式
#21
session.setAttribute("logID",logid);
session.getAttribute("logID",logid);//
不用toString();
session.getAttribute("logID",logid);//
不用toString();
#22
Integer.parseInt(session.getAtrribute(XXXXX)).toString();
是否可行?????
是否可行?????
#23
把session的id取出来,然后别的页面通过id找session试试,这是我的想法,不一定好使哈
#24
一个Session是绝对可以在多个JSP页面引用的,因为我就用过,还有这个
session.setAttribute("logID",logid);//logid是从登录界面获得的用户id变量是int型;
在显示个人博客页面获得用户id成功:
String userid =(String)session.getAttribute("userID").toString();
想在显示个人信息页面同样获得,再写同样一句就提示错误:
String userid =(String)session.getAttribute("userID").toString();
toString()和(String)转换是不行的,而且你获得的Session一个是logID,一个是userID,名字应该一致吧。如果你用了Struts,转换问题还好解决。
session.setAttribute("logID",logid);//logid是从登录界面获得的用户id变量是int型;
在显示个人博客页面获得用户id成功:
String userid =(String)session.getAttribute("userID").toString();
想在显示个人信息页面同样获得,再写同样一句就提示错误:
String userid =(String)session.getAttribute("userID").toString();
toString()和(String)转换是不行的,而且你获得的Session一个是logID,一个是userID,名字应该一致吧。如果你用了Struts,转换问题还好解决。
#25
可以可以
#26
谢谢大家了!用session传int型的还得转来转去的,容易出错,最后改传的username,全是String型不用类型转换就没事了。谢谢各位了!呵呵