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>
</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> 请输入用户名和密码并选择用户种别:
</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
<%
}
%>
>学生
<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>
</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>
|
<a href="logout.jsp">退出登录</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border=0 cellpadding=0 cellspacing=0 bgcolor="#ffffff" width=700>
<tr>
<td>
<br> 你可以选择的课程列表如下(<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>
=============================================
- Java servlet 之间的跳转
- Java开发之Servlet之间的跳转
- Java开发之Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- Servlet之间的跳转
- 黑马程序员---Servlet之间的跳转方式
- jsp与servlet之间的跳转
- Servlet之间跳转
- java web中jsp与servlet之间的跳转和传递参数
- java web中jsp与servlet之间的跳转和传递参数
- forward、sendRedirect及Jsp和Servlet之间的跳转
- forward、sendRedirect及Jsp和Servlet之间的跳转
- forward、sendRedirect及Jsp和Servlet之间的跳转
- 基本的全选,反选,全不选.批删,批量添加.即点即改
- EditPlus 自动格式化js、html、css
- c# 读写excel要添加哪些引用
- 大端和小端的区别
- 理解Linux系统负荷
- Java servlet 之间的跳转
- 反转链表[剑指offer]之python实现
- MySQL 没有索引 锁全表
- android屏幕显示布局边框及宽高
- SQL Server2008 列名显示无效
- linux内核源码总览之一---------源代码目录结构说明
- oracle数据库最基本操作
- 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
- hdu-1205 吃糖果