Java servlet 之间的跳转

来源:互联网 发布:java thread类的方法 编辑:程序博客网 时间:2024/06/06 15:42

login。jsp

<%@page contentType="text/html;charset=gbk" %>
<%@page language="java" import="java.util.*" %>
<%@page language="java"  %>
<%
String sUsername = (String)session.getAttribute("username");
if ( sUsername == null )
{
    sUsername = "";
}
String sRole = (String)session.getAttribute("role");
if ( sRole == null )
{
    sRole = "0";
}
%>
<html>
<head>
  <title>请登录选课系统</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <script language="JAVASCRIPT" src="common/cmnScript.js"></script>
  <script language="JAVASCRIPT" src="login.js"></script>
  <link rel="stylesheet" type="text/css" href="common\cmnStyle.css" TITLE="common"></link>

  <script language="JAVASCRIPT">
<%
    if ( session.getAttribute("errMsg") != null )
    {
%>
        var sErrMsg = "<%=session.getAttribute("errMsg")%>";
<%
    }
    else
    {
%>
        var sErrMsg = "";
<%
    }
%>
  </script>
</head>

<body>
<table border=0 cellpadding=0 cellspacing=0 height=100>
  <tr>
    <td>
      &nbsp;
    </td>
  </tr>
</table>
<form name="form_main" action="Login" method="post"
      onsubmit="return checkInput();" onreset="resetForm()">
<table border=0 cellpadding=0 cellspacing=2 bgcolor="#000000" align=center>
  <tr>
    <td>
      <table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff" width=300>
        <tr>
          <td>
            <br>&nbsp;&nbsp;请输入用户名和密码并选择用户种别:
          </td>
        </tr>
        <tr>
          <td height=5></td>
        </tr>
        <tr>
          <td align=center>
            <table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff">
              <tr>
                <td align=right>用户名:</td>
                <td>
                  <input type="text" name="username" length=10 maxlength=20 value="<%=sUsername%>"></input>
                </td>
              </tr>
              <tr>
                <td align=right>密码:</td>
                <td>
                  <input type="password" name="password" length=10 maxlength=20></input>
                </td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td height=5></td>
        </tr>
        <tr>
          <td align=center>
            <input type="radio" name="role" value="0" style="border-width: 0px;"
<%
if( sRole.equals("0") )
{
%>
            checked
<%
}
%>
          >学生 &nbsp;
          <input type="radio" name="role" value="1" style="border-width: 0px;"
<%
if( sRole.equals("1") )
{
%>
            checked
<%
}
%>
          >教师
          </td>
        </tr>
        <tr>
          <td height=5></td>
        </tr>
        <tr>
          <td align=center>
            <input type="submit" value="登录"></input>
            <input type="reset" value="清除"></input>
          </td>
        </tr>
        <tr>
          <td height=10></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</form>
</body>
</html>

 

 

------------------------------------------------

 

login.java  servlet

package com.lyq;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import java.io.*;
import java.util.Hashtable;
import java.sql.*;


/**
 * Servlet implementation class Login
 */
@WebServlet("/Login")
public class Login extends Common {
 private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Login() {
        super();
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置提交表单的中文编码
        request.setCharacterEncoding("GBK");
        HttpSession mySession = request.getSession(true);
       
        //清空错误消息
        mySession.setAttribute("errMsg","");
       
        //是否进入默认页面
        if ( !request.getParameterNames().hasMoreElements() )
        {
            response.sendRedirect("login.jsp");
            return;
        }
       
        //得到用户输入信息
        String sUsername = request.getParameter("username");
        String sPassword = request.getParameter("password");
        String sRole = request.getParameter("role");

        //如果用户是提交表单
        if ( sUsername != null && sUsername.length() > 0 )
        {
            //校验用户输入信息
            String sRealname = getUserRealname( sUsername, sPassword, sRole );
           
            if ( sRealname == null )
            {
                //出错了设置变量并重新显示
                mySession.setAttribute( "errMsg", "登录失败!请重新输入相关信息!" );
                mySession.setAttribute( "username", sUsername );
                mySession.setAttribute( "role", sRole );
                response.sendRedirect("login.jsp");
                return;
            }
            else
            {
                mySession.setAttribute( "username", sUsername );
                mySession.setAttribute( "realname", sRealname );
                //根据用户角色的不同决定迁移到哪个页面
                if ( sRole.equals( "0" ) )
                {
                    //学生角色则迁移到选课一览页面
                   // response.sendRedirect( "/ChooseCourse" );
                   
                //  不可以用    response.sendRedirect( "question_1.1.jsp" );

                 // 可以用   request.getRequestDispatcher("question_1.1.jsp").forward(request, response);
                 
                 request.getRequestDispatcher("/ChooseCourse").forward(request, response);
                 
                 //RequestDispatcher rd =getServletContext().getNamedDispatcher("ChooseCourseServlet");
                 //rd.forward(request, response);

               // 可以用    request.getRequestDispatcher("../question_1.1.jsp").forward(request, response);

                }
                else
                {
                    //教师角色则迁移到选课结果一览页面
                 
                    response.sendRedirect( "Adminst_charutimu_1.jsp" );
                }
                return;
            }
        }
        //如果用户非法进入这个页面
        else
        {
            response.sendRedirect("../login.jsp");
            return;
        }
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  doGet( request, response );
 }

 
  private String getUserRealname(String sUsername, String sPassword, String sRole)
     {
         //获得数据库连接
         Connection conn = this.getDBConnection();
         if ( conn == null )
         {
             return null;
         }
         Statement stmt = null;
         ResultSet rs = null;
        
         try
         {
             stmt = conn.createStatement();
             //执行SQL语句
             String sQuery = "select * from user where username='" + sUsername + "' "
                           + "and password='" + sPassword + "' and role='" + sRole + "' ";
             rs = stmt.executeQuery( sQuery );
             String sRealname = null;
             if ( rs.next() )
             {
                 sRealname = rs.getString( "realname" );
             }
             return sRealname;
         }
         catch(Exception e)
         {
             e.printStackTrace();
             return null;
         }
         finally
         {
             try
             {
                 rs.close();
                 stmt.close();
                 conn.close();
             }catch(Exception ex)
             {
             }
         }
     }
}

-----------------------------------------------------

ChooseCourse.java  servlet

package com.lyq;


import java.io.*;
import java.util.*;
import java.sql.*;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.bean.Course;


/**
 * Servlet implementation class ChooseCourse
 */
@WebServlet("/ChooseCourse")
public class ChooseCourse extends Common {
 private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ChooseCourse() {
        super();
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("GBK");
         HttpSession mySession = request.getSession(true);
        
         //��մ�����Ϣ
         mySession.setAttribute("errMsg","");
        
         //�Ƿ����Ĭ��ҳ��
         if ( !request.getParameterNames().hasMoreElements() )
         {
             //�����Ĭ�Ͻ���ҳ�棬��ѡ�����б�ѡ�Ŀγ�
             String sUsername = (String)mySession.getAttribute( "username" );
             Vector allCourses = getAllCourses( sUsername );
             mySession.setAttribute( "courses", allCourses );
          
             // 可以用   request.getRequestDispatcher("question_1.1.jsp").forward(request, response);

           //  response.sendRedirect("../chooseCourse.jsp");
             
           //  request.getRequestDispatcher("chooseCourse.jsp").forward(request, response);
             response.sendRedirect("chooseCourse.jsp");
            
             return;
         }
         else
         {
             //��ȡ������
             String sCourseId = request.getParameter("courseId");
             String sUsername = (String)mySession.getAttribute("username");
             //���Խ���ѡ��
             boolean bChoose = chooseCourse( sUsername, sCourseId );
             //���ѡ�γɹ�������ת��ѡ�ν��һ��ҳ��
             if ( bChoose )
             {
            
                 request.getRequestDispatcher("/ViewCourse").forward(request, response);

              // response.sendRedirect("../servlet/ViewCourse");
                 return;
             }
             else
             {
                 mySession.setAttribute("errMsg","��ѡ��Ŀγ�" + sCourseId + "�Ѿ���Ա����ѡ�������γ̡�");
                 Vector allCourses = getAllCourses( sUsername );
                 mySession.setAttribute( "courses", allCourses );
                 response.sendRedirect("chooseCourse.jsp");
                 return;
             }
         }
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  doGet( request, response );
  
  
 }

 
 
  private Vector getAllCourses( String sUsername )
     {
         //������ݿ�����
         Connection conn = this.getDBConnection();
         if ( conn == null )
         {
             return null;
         }
         Statement stmt = null;
         ResultSet rs = null;
        
         try
         {
             stmt = conn.createStatement();
             //ִ��SQL���
             String sQuery = "select tb_course.*,IF(tb_elective.course_id, count(*), 0) as amount "
                           + "from tb_course left join tb_elective "
                           + "on tb_course.course_id = tb_elective.course_id "
                           + "where tb_course.course_id not in "
                           + "(select distinct course_id from tb_elective where username='" + sUsername + "') "
                           + "group by tb_course.course_id";
             rs = stmt.executeQuery( sQuery );
             //������ҳ������ʾ�Ŀγ��б�
             Vector courses = new Vector();
             while ( rs.next() )
             {
                 Course course = new Course();
                 course.setCourseId( rs.getString( "course_id" ) );
                 course.setCourseName( rs.getString( "course_name" ) );
                 course.setTeacher( rs.getString( "teacher" ) );
                 course.setPoint( rs.getInt( "point" ) );
                 course.setTime1( rs.getString( "time_1" ) );
                 course.setTime2( rs.getString( "time_2" ) );
                 course.setLimited( rs.getInt( "limited" ) );
                 course.setAmount( rs.getInt( "amount" ) );
                
                 courses.add(course);
             }
             return courses;
         }
         catch(Exception e)
         {
             e.printStackTrace();
             return null;
         }
         finally
         {
             try
             {
                 rs.close();
                 stmt.close();
                 conn.close();
             }catch(Exception ex)
             {
             }
         }
     }
    
     //Ϊ�û�����ѡ��
     private synchronized boolean chooseCourse( String sUsername, String sCourseId )
     {
         //������ݿ�����
         Connection conn = this.getDBConnection();
         if ( conn == null )
         {
             return false;
         }
         Statement stmt = null;
         ResultSet rs = null;
        
         try
         {
             stmt = conn.createStatement();
             //ִ��SQL���
             String sQuery = "select tb_course.limited,IF(tb_elective.course_id, count(*), 0) as amount "
                           + "from tb_course left join tb_elective "
                           + "on tb_course.course_id = tb_elective.course_id "
                           + "where tb_course.course_id = '" + sCourseId + "' "
                           + "group by tb_course.course_id";
             rs = stmt.executeQuery( sQuery );
             //����Ƿ�ѡ����������
             if ( rs.next() )
             {
                 int iLimited = rs.getInt("limited");
                 int iAmount = rs.getInt("amount");
                 if ( iAmount >= iLimited )
                 {
                     return false;
                 }
             }
             //���Խ���ѡ��
             String sUpdateQuery = "insert into tb_elective set "
                                 + "username='" + sUsername + "', course_id='" + sCourseId + "'";
             stmt.executeUpdate( sUpdateQuery );
            
             return true;
         }
         catch(Exception e)
         {
             e.printStackTrace();
             return false;
         }
         finally
         {
             try
             {
                 rs.close();
                 stmt.close();
                 conn.close();
             }catch(Exception ex)
             {
             }
        
}
     }
}

-----------------------------------

chooseCourse.jsp

<%@page contentType="text/html;charset=gbk" %>
<%@page language="java" import="java.util.*" %>
<%@page language="java" import="com.bean.*" %>
<%@page language="java" import="com.lyq.*" %>

<%@ include file="inc/cmnAuthenticate.jsp" %>
<%
Vector vCourses = (Vector)session.getAttribute("courses");
if ( vCourses == null )
{
    vCourses = new Vector();
}
%>
<html>
<head>
  <title>在线选课</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <script language="JAVASCRIPT" src="common/cmnScript.js"></script>
  <script language="JAVASCRIPT" src="chooseCourse.js"></script>
  <link rel="stylesheet" type="text/css" href="common\cmnStyle.css" TITLE="common"></link>

  <script language="JAVASCRIPT">
<%
    if ( session.getAttribute("errMsg") != null )
    {
%>
        var sErrMsg = "<%=session.getAttribute("errMsg")%>";
<%
    }
    else
    {
%>
        var sErrMsg = "";
<%
    }
%>
  </script>
</head>

<body>
<table border=0 cellpadding=0 cellspacing=0 height=10>
  <tr>
    <td>
      &nbsp;
    </td>
  </tr>
</table>
<form name="form_main" action="servlet/ChooseCourse" method="post"
      onsubmit="return checkInput();" onreset="resetForm()">
<table border=0 cellpadding=0 cellspacing=2 bgcolor="#000000" align=center>
  <tr>
    <td>
      <table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff" width=700>
        <tr>
          <td align=left height=20>
            欢迎你,<font color=blue><%=session.getAttribute("realname")%></font>!
          </td>
          <td align=right>
            <a href="servlet/ViewCourse">已选课程列表</a>
            &nbsp;| &nbsp;
            <a href="logout.jsp">退出登录</a>
            &nbsp;
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td>
      <table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff" width=700>
        <tr>
          <td>
            <br>&nbsp;&nbsp;你可以选择的课程列表如下(<font color=#cccccc>灰色</font>按钮代表选课人数已满):
          </td>
        </tr>
        <tr>
          <td height=5>
          </td>
        </tr>
        <tr>
          <td align=center height=300 valign=top>
            <table border=0 cellpadding=0 cellspacing=2 bgcolor="#ffffff" width=680>
              <tr bgcolor=#cccccc height=18>
                <td width=50 align=center>
                  课程编号
                </td>
                <td width=250 align=center>
                  课程名称
                </td>
                <td width=50 align=center>
                  授课老师
                </td>
                <td width=40 align=center>
                  学分
                </td>
                <td width=150 align=center>
                  上课时间
                </td>
                <td width=40 align=center>
                  操作
                </td>
                <td width=50 align=center>
                  限制人数
                </td>
                <td width=50 align=center>
                  已选人数
                </td>
<%
for ( int i=0; i<vCourses.size(); i++ )
{
    Course course = (Course)vCourses.get(i);
%>
              <tr>
                <td align=center>
                  <%=course.getCourseId()%>
                </td>
                <td>
                  <%=course.getCourseName()%>
                </td>
                <td>
                  <%=course.getTeacher()%>
                </td>
                <td align=center>
                  <%=course.getPoint()%>
                </td>
                <td align=center>
                  <%=course.getTime1Express()%><br><%=course.getTime2Express()%>
                </td>
                <td align=center>
<%
//如果选课人数大于限制人数,不能再选了
if ( course.getLimited() <= course.getAmount() )
{
%>
                  <button disabled>选课</button>
<%
}
else
{
%>
                  <button onclick="choose('<%=course.getCourseId()%>')">选课</button>
<%
}
%>
                </td>
                <td align=center>
                  <%=course.getLimited()%>
                </td>
                <td align=center>
                  <%=course.getAmount()%>
                </td>
              </tr>
<%
}
%>
            </table>
          </td>
        </tr>
        <tr>
          <td height=10></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<input type="hidden" name="courseId" value="">
</form>
</body>
</html>

-------------------------------------------------

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>online_exam</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.lyq.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/servlet/MyServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>MyServlet_2</servlet-name>
    <servlet-class>com.lyq.MyServlet_2</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet_2</servlet-name>
    <url-pattern>/servlet/MyServlet_2</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.lyq.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/servlet/Login</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>ChooseCourseServlet</servlet-name>
    <servlet-class>com.lyq.ChooseCourse</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ChooseCourseServlet</servlet-name>
    <url-pattern>/servlet/ChooseCourse</url-pattern>
  </servlet-mapping>
 
 
 
 
 
</web-app>

 

=============================================

0 0