我在写一个简单的打印成绩单的程序的时候出现了这个问题
代码为://第一个页面,是输入老师姓名,班级名称,科目数,学生人数
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>信息的输入</title>
<style type="text/css">
<!--
.STYLE2 {
font-size: 16px;
font-weight: bold;
}
-->
</style>
</head><body><form id="formInformation" name="formInformation" method="post" action="InputCourseName.jsp" onSumbmit="">
  <table width="48%" height="20%">
    <tr>
      <td width="40%" height="27" align="right"><span class="STYLE2">老师姓名:</span></td>
      <td width="60%"><input name="txtTeacherName" type="text" id="txtTeacherName" /></td>
    </tr>
    <tr>
      <td height="42" align="right" class="STYLE2">班级名称:</td>
      <td><input name="txtClassName" type="text" id="txtClassName" /></td>
    </tr>
    <tr>
      <td height="37" align="right" class="STYLE2">科目数:</td>
      <td><input name="txtCourseNumber" type="text" id="txtCourseNumber" /></td>
    </tr>
    <tr>
      <td height="47" align="right" class="STYLE2">学生人数:</td>
      <td><input name="txtStudentNumber" type="text" id="txtStudentNumber" /></td>
    </tr>
    <tr>
      <td height="47" colspan="2" align="center" class="STYLE2"><input type="submit" name="Submit" value="下一步" /></td>
    </tr>
  </table>
</form></body>
</html>//第二个页面,输入科目名称<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="DataError.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>输入科目名称</title>
</head><body>
<form id="formCourse" name= "formCourse" method="post" action="InputScore.jsp" onsubmit="">
<table width="50%" border="0" bordercolor="#FFFFFF">
<!--判断输入的信息是否正确-->
<%
//将前一个输入页面中的信息读取出来
//读取科目数 
String coursenumber = request.getParameter("txtCourseNumber");

//读取学生人数
String studentnumber = request.getParameter("txtStudentNumber");

//读取教师姓名
String teachername = request.getParameter("txtTeacherName");

//读取班级名称
String classname = request.getParameter("txtClassName");

try
{
int i;
//将读出的科目数转化成整型
int cnumber = Integer.parseInt(coursenumber);
//将课程数目加入到session中
session.setAttribute("cnumber", cnumber);
//动态的生成cnumber个科目+文本
for(i = 1; i <= cnumber; i++)
{%>
<tr>
<td><%="科目"+i%></td>
<td><input type="text" name=<%="txtCourse"+i%> /></td>
</tr>
<% 
}
}

//捕捉异常 
catch(Exception e)
{
throw new Exception("您的科目数输入不正确!");
}

try
{
//将读出的学生数目转化成整型,捕捉异常
int snumber = Integer.parseInt(studentnumber);
//将学生人数加入到session中
session.setAttribute("snumber", snumber);
}
//捕捉异常
catch(Exception e1)
{
throw new Exception("您的学生人数输入不正确!");
}
//将信息加入session中
session.setAttribute("tname", teachername);
session.setAttribute("cname", classname);
%>
<tr>
<td><input type="submit" name="submit" value="下一步"/></td>
</tr>
</table></form>
</body>
</html>
//第三个页面,输入学生姓名,各科的成绩
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="DataError.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>学生姓名和各科成绩的输入</title>
</head><body>
<%

//检验输入的科目名称属否正确
for(int i = 1; i <= Integer.parseInt((String)session.getAttribute("cnumber")); i++)
{
try
{
//读取科目名称
String course = request.getParameter("txtCourse"+i);
if(course.equals(""))
throw new Exception();
session.setAttribute("course"+i, course);
}
catch(Exception e)
{
throw new Exception("您输入的科目名称不能为空!");
}
}
%><form id="formInputScore " name="formInputScore " method="post" action="ReportCard.jsp" onsubmit=""><table width="100%" border="1" align="center" cellspacing="0" bordercolor="#333333">
<tr>
<th>序号</th>
<th>学生姓名</th>
<%
//对科目数进行遍历,将科目名遍历输出
for(int i = 1; i <= Integer.parseInt((String)session.getAttribute("cnumber")); i++)
{
%>
<th><%=(String)session.getAttribute("course"+i)%></th>
<%
}
//表头输出完毕,为序号,学生姓名,科目名
%>
</tr>
<%
for(int i = 1; i <= Integer.parseInt((String)session.getAttribute("snumber")); i++)
{
%>
<tr>
<td><%=i%></td>
<!--i号学生的姓名-->
  <td align="center"><input type="text" name=<%="student"+i%>/></td>
<%
for(int j = 1; j <= Integer.parseInt((String)session.getAttribute("cnumber")); i++)
{
%>
<!--i号学生的coursej课程的成绩-->
   <td align="center"><input type="text" name=<%=i+"score"+j%> /></td>
<%
}
%>
</tr>
<%
}
%>
<tr>
  <td><input type="submit" name="Submit" value="下一步" /></td>
</tr>
</table>
</form></body>
</html>//web.xml<?xml version="1.0" encoding="gb2312"?><web-app>
<!--配置一个实例名-->
<servlet>
<servlet-name>SchoolReport</servlet-name>
<jsp-field>/InputCourseName.jsp</jsp-field>
</servlet> <servlet>
<servlet-name>InputCourse</servlet-name>
<jsp-field>/InputScore.jsp</jsp-field>
</servlet>

<servlet>
<servlet-name>Score</servlet-name>
<jsp-field>/ReportCard.jsp</jsp-field>
</servlet>

<session-config>
    <session-timeout>20</session-timeout>
</session-config>

<!--设置一个处理错误的页面
 error-code:设定一个具体的错误代码,如404
 location: 设定一个处理错误的页面
-->
<error-page>    
    <error-code>404</error-code>  
    <location>/DataError.jsp</location>   
</error-page></web-app>在第二个页面转到第三个页面的时候就出现这个问题,我不知道怎么解决,请大家帮我下下~~
谢谢拉

解决方案 »

  1.   

    此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示。它就是这样说的
      

  2.   

    此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示。 页面上就是这样显示的可以麻烦您把我的代码拷过去,运行下吗?
     
      

  3.   

    把那些所谓的google工具条 百度工具条等等卸载即可!
      

  4.   

    你用TOMCAT的吧?把错误发上来看看~
      

  5.   

    没有人愿意看这么长的代码,最好把异常信息输出来如在你的catch块中加入一行代码就可以显示错误信息了。
    catch(Exception e) 

    e.printStackTrace();
    throw new Exception("您输入的科目名称不能为空!"); 

      

  6.   

    你从jsp提交到jsp根本不用配置web.xml还有就是你是从哪个页面提交到哪个页面的时候报的500错误?
      

  7.   

    错误代码是在第三页
    Integer.parseInt((String)session.getAttribute("cnumber"));
    错误信息是Integer类型不能与String类型匹配。
    由于第二页提交过来的是数字;这里用(String)类型获取的就是数字类型,再用Integer.parseInt转换就会出错。
    建议不要频繁使用session对象,因为运行起来会比较“卡”。把获取数据的部分放到页面开头,容易提高代码可读性。
    Integer cnum=(Integer)session.getAttribute("cnumber");
    Integer snum=(Integer)session.getAttribute("snumber");
    另外在输出表格时,内层循环的迭代部分应为内层变量
    for(int j = 1; j <= Integer.parseInt((String)session.getAttribute("cnumber")); i++) 
    for(int i = 1; i <= Integer.parseInt((String)session.getAttribute("snumber")); i++) 
    你全部为外层变量。
    这样就导致了我的机器死了好几次。