基于jsp servlet javabean的学生管理系统

日期:2019/10/24

该学生管理系统基于jsp+servlet+javabean,使用MVC模式,是一个很基础的学生管理系统,由于这是本学期的课程大作业,所以现在还没有完全写完,这篇博文会根据进度逐步更新.

先贴一下该学生管理系统的网址(我已经上传到服务器上了)

http://139.9.200.70:8080/StudentMS/login.html

如果要使用学生身份登陆,可以用学号:201724010206,密码:1 进行登陆

如果要使用教师身份登陆,可以用教师号:201724010,密码:1 进行登陆

当然也可以用其他账号进行登陆,后文会给出数据库的sql文件,导入数据库便可以自己决定登陆的账号和密码

 

由于我在这个大作业中主要负责后端部分,所以这个博客主要讲解后端代码部分

 

1.系统的目录结构

 

2.具体代码

html和jsp页面的代码

(1)login.html(登陆页面)


<!DOCTYPE html>

<html lang="en"><!--可删,lang="en"会让浏览器显示“”翻译此页-->

<head>

    <meta charset="UTF-8">

    <title>登录页面</title>

 

    <link rel="stylesheet" type="text/css" href="css/login.css"/>

    <script type="text/javascript" src="js/login.js"></script>

</head>

 

<body>
<div id="login_main">

 

  <p id="logo_image"><img src="assets/103.png" width="50" height="50"></p>

 

    <form method="post" action="LoginServlet"><!--method 该属性定义了如何发送数据,action 这个属性定义了发送数据要去的位置-->

 

        <p><label class="label_input">用户名</label><input type="text" id="usernumber" class="text_field" name="usernumber"/></p>

        <p><label class="label_input">密码</label><input type="password" id="password" class="text_field" name="password"/></p>

 

        <div id="login_control">

            <input type="submit" id="btn_login" value="登录" οnclick="login();"/>

            <a id="forget" href="forget.html"><i>忘记密码?</i></a>

        </div>
		
        <div id="login_chosen">
			<input type="radio" name="shenfen" value="bumen"/>部门

   			<input type="radio" name="shenfen" value="teacher"/>教师

    		<input type="radio" name="shenfen" value="student"/>学生

		 </div>		

    </form>
			 

</div>
</body>

</html>

(2)index.jsp(登陆后的首页)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="sms.bean.*" %>
<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8" />
		<title>这是选课系统的主界面</title>
		<style type="text/css">
			@import "css/index.css"
		</style>
	</head>
	<body>
		<%
			Student s = (Student)request.getSession().getAttribute("student");
			Teacher t = (Teacher)request.getSession().getAttribute("teacher");
			if(s == null && t == null){
				response.sendRedirect("notlogin.jsp");
			}
		%>
		<div class="main">
			<div class="navigation">
				<span>欢迎回来! 
					<%
						if(s != null){
							out.print(s.getName());
						}
						else if(t != null){
							out.print(t.getName());
						}
					%>
				</span>
				<a class="exit" href="/StudentMS/LogoutServlet"><span>退出登录</span></a>
			</div>
			<div class="button_menu">
				<ul>
					<li>
					
					<button onclick="window.location.href='main.html'"><a href="main.html">公告</a></button>
					
					</li>
					<li><button onclick="window.location.href='pick.html'"><a href="pick.html">选课</a></button></li>
					<li><button onclick="window.location.href='schedule.html'"><a href="schedule.html">课表查询</a></button></li>
					<li><button onclick="window.location.href='grade.html'"><a href="grade.html">成绩查询</a></button></li>
					<div class="clear"></div>
					
				</ul>
				<div class="clear"></div>
			</div>
			<div class="message_board">
				<h1 class="message_title">公告</h1>
				<article class="message_content">内容</article>
				<div class="content_1">
				<p>
					&nbsp;&nbsp;网络视频课程(课程号080005开头的任选课)必须通过选课系统选定该类课程,一般在每学期的第二周开放在线学习平台,期末考试前一周安排网上测试。
					选定该类课程的同学通过登录教务处网站或信息技术管理处网站点击“网络视频课程在线学习平台”链接进入,学习登录时,用户名为学号,初始登录密码为‘123456’,初次登录后修改学习密码。  
				</p>
				<p>
  					&nbsp;&nbsp;请认真核实自己的课程表,不要漏选应修的课程,课程表中未有的课程将不予登记成绩;不要多选不修的课程,否则将影响毕业学分审核及平均学分绩点计算。    
				</p>
				<p>
  					&nbsp;&nbsp;选课中遇到问题请查看选课公告中相关文件或咨询本学院教务员老师。
				</p>
				<p>
  					&nbsp;&nbsp;忘记密码请联系本学院教务员老师查询。
  				</p>
				</div>
				<div class="preview"><a href="#">上一篇</a></div>
				<div class="next"><a href="#">下一篇</a></div>
			</div>
			<div class="clear"></div>			
		</div>

	</body>
</html>

(3)nologin.jsp(如果有人想要不登陆直接访问index.jsp, index.jsp页面会通过检查session中是否有用户的身份信息来判断用户是否已经登陆,若没登陆则跳转到nologin.jsp页面,然后由该页面跳转到login.html)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>未登录,请先登陆</title>
</head>
<body>
	<div>
		未登录,请先登陆
	</div>
	<%
		response.setHeader("Refresh", "2;url=login.html");
	%>

</body>
</html>

 

java文件代码(servlet和javabean文件)

这部分主要有四个包,其中

bean包下封装的是javabean文件,主要是用户的类

conn包下封装的是返回connection类的文件

dao包下封装的是所有sql查询的方法

servlet包下封装的是所有servlet类

(4)LoginServlet.java

package sms.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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 sms.conn.Conn;
import sms.dao.StudentSql;
import sms.bean.Student;
import sms.bean.Teacher;
import sms.dao.TeacherSql;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String unumber = request.getParameter("usernumber");
		String pwd = request.getParameter("password");
		String shenfen = request.getParameter("shenfen");
		//out.println(unumber);
		//out.println(pwd);
		//out.println(shenfen);
		//out.print(shenfen);
		if("student".equals(shenfen)) {
			StudentSql studentSql = new StudentSql();
			boolean b = studentSql.isStudent(unumber, pwd);
			//out.print(b);
			if(b) {
				String uname = studentSql.getSName(unumber);
				Student s = new Student(uname, unumber);
				HttpSession session = request.getSession();
				session.setAttribute("student", s);
				//out.println("正确");
				response.sendRedirect("index.jsp");
			}else {
				out.println("账号或密码错误");
				response.setHeader("refresh", "2;URL=login.html");
			}
		}
		else if("teacher".equals(shenfen)) {
			TeacherSql teacherSql = new TeacherSql();
			boolean b = teacherSql.isTeacher(unumber, pwd);
			//out.print(b);
			if(b) {
				String uname = teacherSql.getTName(unumber);
				Teacher t = new Teacher(uname, unumber);
				HttpSession session = request.getSession();
				session.setAttribute("teacher", t);
				//out.println("正确");
				response.sendRedirect("index.jsp");
			}else {
				out.println("账号或密码错误");
				response.setHeader("refresh", "2;URL=login.html");
			}
		}else {
			out.println("错误");
			response.setHeader("refresh", "2;URL=login.html");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

(5)LoginoutServlet.java

package sms.servlet;

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;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		session.removeAttribute("student");
		session.removeAttribute("teacher");
		response.sendRedirect("login.html");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

 

目前的代码已经上传到了GitHub仓库中,之后会随着大作业的进度不断更新,如果感觉不错就帮忙点个star.

地址:https://github.com/machi12/StudentMS

 

 

  • 12
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: JSPServletJavaBean是Java Web开发中常用的技术,结合起来可以实现一个学生管理系统。该系统可以实现学生信息的增删改查等功能,具体实现步骤如下: 1. 创建一个JavaBean类,用于存储学生信息,包括学生姓名、学号、性别、年龄等属性。 2. 创建一个Servlet类,用于处理学生信息的增删改查等操作。在Servlet中,可以通过调用JavaBean类的方法来实现对学生信息的操作。 3. 创建一个JSP页面,用于展示学生信息和接收用户的操作请求。在JSP页面中,可以通过调用Servlet类的方法来实现对学生信息的操作,并将结果展示给用户。 4. 配置web.xml文件,将ServletJSP页面进行映射,使得用户可以通过访问JSP页面来调用Servlet类的方法。 5. 部署该Web应用程序到服务器上,用户可以通过访问该应用程序的URL来使用学生管理系统。 通过以上步骤,就可以实现一个简单的学生管理系统。当然,还可以根据实际需求进行功能扩展和优化。 ### 回答2: JSPServletJavaBean是Java技术中的三个重要组成部分。JSP用来开发用户界面,Servlet用来处理用户请求,JavaBean则是服务于JSPServlet的辅助工具。学生管理系统是一个常见的应用场景,可以通过组合使用JSPServletJavaBean来实现。本文将围绕学生管理系统展开讨论,探讨如何使用JSPServletJavaBean来实现这个应用。 首先,我们可以使用JSP来实现用户界面。在学生管理系统中,我们可以创建一个显示学生列表的JSP页面,该页面通过JavaBean获取数据库中的学生信息,然后将学生信息展示在页面上。这样,用户就可以通过这个页面轻松地查看学生信息。另外,我们还可以通过JSP页面来添加、编辑和删除学生信息。这些操作会通过表单提交到Servlet中进行处理。 Servlet则是学生管理系统中的核心。Servlet主要负责处理用户请求,并调用JavaBean来对数据库进行操作。例如,当用户添加一个新的学生信息时,Servlet会接受表单数据,然后将数据转换为JavaBean对象,最后将JavaBean对象传递给DAO层进行存储。如果用户请求查看学生列表,则Servlet将调用JavaBean来读取数据库中的学生信息,然后将信息传回给JSP页面进行展示。 最后,JavaBean也是学生管理系统的重要组成部分。JavaBean主要负责数据库操作,比如查询、添加、更新和删除学生信息。例如,当Servlet需要查询数据库中的学生信息时,就会调用JavaBean的查询方法。而当Servlet需要添加一个新的学生信息时,就会把用户提交的表单数据封装成JavaBean对象,并调用JavaBean的添加方法将信息存储到数据库中。 综上所述,学生管理系统可以通过组合使用JSPServletJavaBean来实现。通过使用JSP展示用户界面,使用Servlet处理用户请求,并使用JavaBean操作数据库,可以提高系统的可维护性和扩展性,使得系统更加灵活和易于开发。当然,这只是学生管理系统的简单实现,如果需要实现更为复杂的功能,还需要更加深入地了解JSPServletJavaBean的使用方法。 ### 回答3: JSPServletJavaBean是JavaWeb开发的三大技术,它们的功能和用途不同。学生管理系统是一个典型的JavaWeb应用,它可以用这三个技术来实现。 学生管理系统的基本功能是对学生信息进行增删改查。JSP是JavaServer Pages的缩写,是用于开发动态Web页面的技术,它可以将JavaBean中的数据渲染到页面上显示。学生管理系统中,我们可以使用JSP页面来展示学生列表、输入学生信息等操作。 Servlet是JavaWeb开发中处理HTTP请求和响应的核心技术。它接受请求并对其进行处理,然后返回响应。在学生管理系统中,我们需要使用Servlet来处理各种请求,比如查询、新增、修改和删除学生信息。 JavaBean是Java提供的一种组件技术,它用于封装一个特定领域的相关数据和功能。在学生管理系统中,JavaBean可以用来封装学生的信息,我们可以定义一个Student类,包含学生姓名、学号、年龄和性别等属性,并实现增删改查方法。 在实现学生管理系统时,可以使用MVC架构,将JSP作为视图展示页面,Servlet作为控制器接收请求并根据请求调用相应的方法处理数据,JavaBean作为模型存储数据和处理数据的逻辑。这样,不仅可以使代码具有良好的可维护性和可扩展性,而且也符合软件开发的设计原则。 总而言之,JSPServletJavaBean是在JavaWeb开发中常用的技术,将它们集成到学生管理系统中可以实现该系统的基本功能。在实际开发中,我们应该根据具体需求进行选用并合理利用这些技术来实现更加优秀的应用程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值