java.lang.String cannot be cast to java.lang.Integer 5

我的代码<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><style... 我的代码<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<style type="text/css">
<!--
body {
background-image: url(11.jpg);
}
-->
</style><body>
<center><br>
<%
if(session.getAttribute("uname")!=null)
{// 用户已登陆
%>

<%! String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
String DBURL = "jdbc:odbc:LocalServer" ;
String DBUSER= "sa" ;
String DBPASSWORD= "" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs= null ;
//HttpSession session = request.getSession();
int id;
%>
<%
//String id1=(String)session.getAttribute("uname") ;
//id=Integer.parseInt(session.getAttribute("uname").toString());
id=(Integer)session.getAttribute("uname");
//id=(int)id1;
String sql = " SELECT num,name,sex,major,indate FROM students WHERE num =?" ;
try{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = conn.prepareStatement(sql) ;
// 设置查询条件
//<%=session.getAttribute("uname")
pstmt.setInt(1,id);
rs = pstmt.executeQuery() ;
%>
<%
if(rs.next())
{// 进行循环打印,打印出所有的内容,以表格形式// 从数据库中取出内容
String id = rs.getString(1) ;
String name = rs.getString(2) ;
String sex = rs.getString(3) ;
String major = rs.getString(4) ;
String indate = rs.getString(5) ;
%>
<form action="" method="post"><table><tr>
<td colspan="2"><center>查询信息显示</center> </td></tr>
<tr><td>学号:</td><td><input type="text" name="num" value="<%=id%>"></td></tr>
<tr><td>姓名:</td><td><input type="text" name="name" value="<%=name%>"></td></tr>
<tr><td>性别:</td><td><input type="text" name="sex" value="<%=sex%>"></td></tr>
<tr><td>专业:</td><td><input type="text" name="major" value="<%=major%>"></td></tr>
<tr><td>入学日期:</td><td><input type="text" name="indate" value="<%=indate%>"></td></tr>
</table>
</form>
<%
}
else{
%>没有发现,要查找的内容!!<br>
请确认要查找的信息是否存在!!<br>
<%
}
%>
<%
rs.close() ;
pstmt.close() ;
conn.close() ;
}
catch(Exception e) {}
%>

<a href="stu_main.jsp">回到功能列表页</a></h3>
<%
}else{// 用户未登陆,提示用户登陆,并跳转
response.setHeader("refresh","2;URL=stu_login.jsp") ;
%>
您还未登陆,请先登陆!!!<br>
两秒后自动跳转到登陆窗口!!!<br>
如果没有跳转,请按<a href="stu_login.jsp">这里</a>!!!<br>
<%
}
%></center></body>
展开
 我来答
gug007
推荐于2018-05-10 · 超过26用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:80.1万
展开全部
id=(Integer)session.getAttribute("uname");
你的uname是字符串,怎么能转换成数值呢,就像uname为“aaaa”一样,怎么能把“aaaa”转换成整型的呢
String sql = " SELECT num,name,sex,major,indate FROM students WHERE num =?" ;
从这句看你是按num查询的,但你为什么又去session中取uname呢,
如果你想按用户名查询的话,就要改成这样:
String uname=(String)session.getAttribute("uname") ;
String sql = " SELECT num,name,sex,major,indate FROM students WHERE name =?" ;
pstmt.setString(1,uname);
杜忆楣03D
2011-12-15 · TA获得超过458个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:393万
展开全部
估计是:id=(Integer)session.getAttribute("uname");转换有问题
用这个试试:Integer.valueOf(session.getAttribute("uname"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qastyy
2011-12-15 · TA获得超过301个赞
知道小有建树答主
回答量:327
采纳率:50%
帮助的人:197万
展开全部
id=(Integer)session.getAttribute("uname"); 应该是这句中请确保uname里边的值没有空格和字母,再是String转换为Integer不是这样的,Integer.valueOf(xxx);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaomaha555
2011-12-15
知道答主
回答量:20
采纳率:0%
帮助的人:12.2万
展开全部
1:你html没有uname

如果不是1说的错,你这个是string不能转化成int类型,Integer.parseInt(str)可以转化~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bertlinsf3ad4
2012-10-22 · TA获得超过255个赞
知道答主
回答量:175
采纳率:66%
帮助的人:23.7万
展开全部
id=(Integer)session.getAttribute("uname");
就是这句了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式