错误如下:description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.Integer
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.ClassCastException: java.lang.Integer
org.apache.jsp.myzhx_005fpaper_jsp._jspService(myzhx_005fpaper_jsp.java:87)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
jsp代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*" errorPage="" %>
<jsp:useBean id="me" class="exam.morningexam" scope="page"></jsp:useBean>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>专项测试答案</title>
<style type="text/css">
<!--
body {
background-image: url(picture/background.jpg);
}
.style1 {color: #FF0000}
-->
</style></head>
<%!
  //处理中文字符串
  public String codestring(String s) {
    String str = s;
    try {
      byte b[] = str.getBytes("ISO-8859-1");
      str = new String(b);
      return str;
    }
    catch (Exception e) {
      return str;
    }
  }
%>
<%
String uid=(String)session.getAttribute("userid");
int pid=1;
if(session.getAttribute("pid")!= null && ((String)session.getAttribute("pid")).length()>0){
pid=Integer.parseInt(codestring((String)session.getAttribute("pid")));
}
Vector qid=me.search_paper(uid,pid);
%>
<body>
<form name="form1" method="post" action="result.jsp">
<table width="748" height="356" border="1" align="center" cellspacing="1" bordercolor="#0099FF">
  <tr align="center" valign="middle">
    <td height="50" colspan="2"><h1 align="center">专项测试答案(上午卷)</h1></td>
  </tr>
  <tr align="center" valign="middle">
    <td width="169" height="298" align="center" valign="top">
  <div align="center"><br>
    <p>&nbsp;</p>      </td>
    <td width="563" align="center" valign="top">
  
  <div align="center">
  <p>&nbsp;
  <% ResultSet rs=null;
for(int i=0;i<qid.size();i++)
{
rs=me.searchinfor(uid,pid,(String)qid.elementAt(i));
try{
if(rs.next()){
%>
    <%=rs.getInt("serial_id")%>.<%=rs.getString("ch_question")%>
    <BR>
    <input type="radio" name="<%=i+1%>" value="a">
    a. <%=rs.getString("optionA")%><br>
    <input type="radio" name="<%=i+1%>" value="b">
    b. <%=rs.getString("optionB")%><br>
        <input type="radio" name="<%=i+1%>" value="c">
        c. <%=rs.getString("optionC")%><br>
        <input type="radio" name="<%=i+1%>" value="d">
        d. <%=rs.getString("optionD")%><br>
<%
String is=String.valueOf(i+1);
String t="answer"+is;
String standard_answer=codestring((String)request.getParameter(is)).trim();
String stu_answer=codestring((String)request.getParameter(t)).trim();
if(stu_answer.equals(standard_answer)){
%>
<span class="style1">正确</span>.答案为<%=stu_answer%>
<%}
else{
%>
<span class="style1">错误</span><br>
您的答案为<%=stu_answer%>,正确答案为<%=standard_answer%>
<br>
    <%}
}}catch (SQLException ex) {
                ex.printStackTrace();
            }}
%>
  </p>
  </td>
  </tr>
</table>
</form>
</body>
</html>
大家帮我看看。先谢谢啦!

解决方案 »

  1.   

    pid=Integer.parseInt(codestring((String)session.getAttribute("pid")));
    改:pid = session.getAttribute("pid")
      

  2.   

    不兼容的类型
    找到: java.lang.Object
    需要: int
    int pid=session.getAttribute("pid");
                                        ^
    1 错误 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  3.   

    你把这个codestring((String)session.getAttribute("pid"))打印出来看看是什么值。如果含有非数字外的东西当然就会出错了。这么点小问题还问。
      

  4.   

    classcast异常,并不是parse异常你的codestring方法返回字符串吗
      

  5.   

    我现在的问题是我的session里存的pid的类型是int类型的可是我在下一个页面获取之后是Object类型的我现在要把它转换成int类型的,要怎么转换?不好意思,我是初学者!to imA:codestring((String)session.getAttribute("pid"))打印出来是2