type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.util.ArrayList.RangeCheck(Unknown Source)
java.util.ArrayList.get(Unknown Source)
service.XMima.Mima(XMima.java:13)
Servlet.Smima.doGet(Smima.java:21)
Servlet.Smima.doPost(Smima.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
0
2011-6-5 16:07:11 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet Smima threw exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at service.XMima.Mima(XMima.java:13)
at Servlet.Smima.doGet(Smima.java:21)
at Servlet.Smima.doPost(Smima.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    XMiMa.java:
    package service;
    import org.hibernate.*;
    import java.util.*;
    import bean.Student;
    import org.hibernate.cfg.Configuration;
    import com.HibernateSessionFactory;
    public class XMima {
        public boolean Mima(String XueHao,String YMm,String XMm){
        Session session=HibernateSessionFactory.getSession();
        Query query=session.createQuery("from Student where Sno='"+XueHao+"'");
        List list=query.list();
        System.out.println(list.size());
        Student stu=(Student)list.get(0);
        System.out.println(stu.getClassno());
        if(YMm.equals(stu.getSmima()))
         return true;
        else
         return false;
        }
    }
      

  2.   

    Smima.java:
    package Servlet;
    import service.XMima;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class Smima extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String XueHao =(String)request.getSession().getAttribute("XueHao");
    String YMm = request.getParameter("YMm");
    String XMm = request.getParameter("XMm");
    XMima dao=new XMima();
    if(dao.Mima(XueHao, YMm , XMm))
    response.sendRedirect("StuChenJi.jsp?XueHao= <%=XueHao%>");
    else
    response.sendRedirect("Index.jsp");        
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doGet(request,response);
    }}
      

  3.   

    StuMima.jsp:
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%
    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>学生课程系统</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->  </head>
      
      <body>
        <style type="text/css"> 
        <!-- 
          #header ,#centers { width:100%; margin:0 auto; clear:both;font-size:18px;  font-weight:bold;} 
          #header{ position: relative;height:68px;background:#dddddd url(image/headerw.jpg )  repeat-x 0 0 ;}
          #header1{position: absolute;margin: 0; padding: 0;letter-spacing: 13px;text-transform: none;}
          #header2{position: absolute;font: bold 14px"Trebuchet MS", Arial, Tahoma, Sans-serif;top: 40px; right: 20px;}
          #centers{ padding:8px 0;}
          #centers .c_left{ float:left; width:230px; background:#F7F7F7; margin-right:5px; } 
          #centers .c_right{ float:left; width:500px;background:#F7F7F7}
        -->
        </style>
        <div id="header">
          <div id="header1";>
            <h1>学生信息系统</h1>
          </div>
          <div id="header2";>
            <h4><a href="Index.jsp">注销</a></h4>
          </div>
        </div> 
        <div id="centers"> 
          <div class="c_left">
            <%String XueHao = request.getParameter("XueHao");
              out.print(""+XueHao+"");
            %>
            <li><a href="StuXuanKe.jsp?XueHao= <%=XueHao%>">选课</a></li>
            <li><a href="StuTuiKe.jsp?XueHao= <%=XueHao%>">退课</a></li>
            <li><a href="StuChenJi.jsp?XueHao= <%=XueHao%>">查询成绩</a></li>
            <li><a href="StuMiMa.jsp?XueHao= <%=XueHao%>">修改密码</a></li>
          </div> 
          <div class="c_right">
            
            <%
              out.println("<form action='Smima' method='post'></br>");
              session.setAttribute("XueHao",XueHao);
              out.println("<h2>更改密码</h2></br>");
              out.println("原密码<input type=text name='YMm'></br>");
              out.println("现密码 <input type=text name='XMm'></br>");
              out.println("<input type=submit value='更改'></br>");
              out.println("</form>");
              
          %>
          
          </div> 
        </div>
      </body>
    </html>
      

  4.   

    找到问题了 前面传数据  <li><a href="StuMiMa.jsp?XueHao=<%=XueHao%>">修改密码</a></li>  写成了 <li><a href="StuMiMa.jsp?XueHao= <%=XueHao%>">修改密码</a></li>   导致传导的原数据20080001变成了 20080001多了一个空格,不能与数据库里的数据匹配
      

  5.   

    Student stu=(Student)list.get(0);
    list 为空或者没有装东东,你获取第一个元素可定就报这个异常呀,你要判断一下是否符合你的使用条件呀边界值问题。