首先我已经做完了一个登陆的项目,能连上数据库,查记录。当第一次登陆的时候到第一个页面(adm.jsp),点“查看学生”页面(Search->SeachStudent,这是两个servlet,先跳到第一个再到第一个。因为第一个要进行判断点的是什么,还有教师什么的按钮。)显示出学生的记录。在这个页面我设了一个表单,只有一个“返回”按钮 ,返回到上个页面(adm.jsp),问题马上就要出现了,再一次点击“查看学生”,页面跳转到Search.然后没有任何显示。这是为什么啊。
adm.jsp <form action="servlet/Search" method="post">
  <table align=center border=1><tr><td colspan=3>您的身份是:${param.type}  </td></tr>
  <tr><td colspan=3>您可以进行以下操作:</td></tr><tr><td>学生</td><td>教师</td><td>课程</td></tr>
   <tr><td><input type="submit" name="choose" value="查看学生"></td>
   <td><input type="submit" name="choose" value="查看教师"></td>
   <td><input type="submit" name="choose" value="查看课程"></td></tr>   <tr><td><input type="submit" name="choose" value="增加学生"></td>
   <td><input type="submit" name="choose" value="增加教师"></td>
   <td><input type="submit" name="choose" value="增加课程"></td></tr>
   
   <tr><td><input type="submit" name="choose" value="删除学生"></td>
   <td><input type="submit" name="choose" value="删除教师"></td>
   <td><input type="submit" name="choose" value="删除课程"></td></tr>
   
   <tr><td colspan=3 align=center><input type="submit" name="choose" value="查看留言"></td></tr>
  </table>
   </form>Search(servlet)
String choose = request.getParameter("choose");
if(choose.equals("查看学生")){
response.sendRedirect("SeachStudent");
}else if(choose.equals("查看教师")){
response.sendRedirect("SeachTeacher");
}else if(choose.equals("修改密码")){
response.sendRedirect("../editpassword/editpassword.jsp");SearchStudentStudentDao sd = new StudentDao();
StudentUser su;
 List studentList = null;
try {
studentList = sd.getStudentList();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  
if (studentList == null) studentList = Collections.EMPTY_LIST;
out.println("<title>查看学生</title>");
out.println("<table    cellspacing='0' width=”90%” border=1>");
out.println("<tr><td><font color=red>学号</font></td><td><font color=red>姓名</font></td><td><font color=red>性别</font></td><td><font color=red>班级</font></td></tr> ");
for(int i=0;i<studentList.size();i++){
su = (StudentUser) studentList.get(i);
out.println("<tr><td>"+su.getId()+"</td>");
out.println("<td>"+su.getName()+"</td>");
out.println("<td>"+su.getSex()+"</td>");
out.println("<td>"+su.getCls()+"</td></tr>");
}
out.print("</table>");
out.println("<form action='../adm/adm.jsp'>");
out.println("<input type='submit'  value='返回'>");
out.println("</form>")

解决方案 »

  1.   

    真的不懂了。是不是和Session和关系 啊。我没有弄。应该不是吧
    谢谢了
      

  2.   

    首先,楼主可以确定的是你第一次点击查询学生可以查询出结果,对吧?
          说明adm.jsp --> Search --> SearchStudent是通的,逻辑没有问题。
    其次,第二次点击查看学生,你在Search里设置一个断点,看看choose是什么值
      

  3.   

    ${param.type}
    返回的时候${param.type}可能为空