基于 Java Web 的学生信息管理系统
关键词:信息管理;Java;JSP; MySQL;
该系统采用 Java 语言结合 JSP 技术编写,以 Eclipse 作为开发工具,MySQL 数据库作为后台数据库进行信息的存储,以及采用 Tomcat 作为对应的 Web 服务器,运行 JSP 页面和 Servlet。
数据库设计
t_user 表
字段名称 | 数据类型 | 长度 | 说明 |
---|---|---|---|
id | int | 11 | 管理员 ID |
username | varchar | 20 | 管理员姓名 |
password | varchar | 20 | 管理员密码 |
t_grade 表
字段名称 | 数据类型 | 长度 | 说明 |
---|---|---|---|
id | int | 11 | 班级编号 |
gradeName | varchar | 20 | 班级名称 |
gradeDesc | varchar | 1000 | 班级详情 |
t_student 表
字段名称 | 数据类型 | 长度 | 说明 |
---|---|---|---|
stuId | int | 11 | 学生 ID |
stuNo | varchar | 20 | 学号 |
stuName | varchar | 10 | 学生姓名 |
sex | varchar | 5 | 性别 |
birthday | date | / | 出生日期 |
gradeId | int | / | 班级 ID |
varchar | 20 | 邮箱 | |
stuDesc | varchar | 1000 | 学生详情 |
代码设计
本系统将后台 Java 代码模块划分为 util 层(功能包层)、model 层(对象封装层)、dao 层(数据访问、操作数据层)、Web 层(即 service 层,业务处理并调用 dao 层)。系统划分具体如图所示:
前台界面则分为登录界面,系统主界面,学生信息管理界面以及班级信息管理界面。如图
登录界面
登录功能代码设计
登录界面 index.jsp 运用 form 表单,text 信息框,password 密码框,提交按钮以及重置按钮构建而成,引用外部 CSS 文件对页面进行进一步友好美化。其中通过调用 JavaScript 函数赋予重置按钮实现重置。JavaScript 代码如下:
```
```
登录界面的功能是让管理员输入正确的身份验证以获得对系统的访问权限,管理员通过 Java 的 JDBC(Java DataBase Connectivity,java 数据库连接),有了 JDBC,向各种关系数据发送 SQL 语句就是一件很容易的事。本系统的 JDBC 核心代码如下:
``` public class DbUtil { private String dbUrl="jdbc:mysql://localhost:3306/db_studentInfo"; private String dbUserName="root"; private String dbPassword="123456"; private String jdbcName="com.mysql.jdbc.Driver";
public Connection getCon() throws Exception{ //获取数据库连接
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return con;
}
public void closeCon(Connection con) throws Exception{ //关闭数据库连接
if(con!=null){
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} ```
管理员登录系统时,在输入框输入管理员账号和密码,点击确定按钮,页面通过 post 递交数据,系统将会通过数据库中存储的数据进行数据比较。
在此之前需要对管理员对象进行封装成 User.java, 再在 Java 代码中 dao 层实现对后台数据库表 t_user 的访问,通过 JDBC 连接,用户可以在 Java 中实现 SQL 语句的操作。
下面的代码 UserDao.java 即实现用户对数据库数据的访问以此实现在表 t_user 中获得用户名及其密码,代码中的数字 1,2 代表 SQL 语句中问号对应的位置。其代码如下:
public class UserDao {
/**
* 登录验证
* @param con
* @param user
* @return
* @throws Exception
*/
public User login(Connection con,User user) throws Exception{
User resultUser=null;
String sql="select * from t_user where userName=? and password=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setUserName(rs.getString("userName"));
resultUser.setPassword(rs.getString("password"));
}
return resultUser;
}
}
帐号,密码填写完毕后,点击确认。如果用户的账号和姓名正确,进入学生信息管理系统主界面 main.jsp ,否则提示帐号或密码错误。
建立登录验证功能需要通过 servelt 调用 UserDao.java 操作数据库得以实现,通过在 util 层封装的 StringUtil 中的 isEmpty 来判断所输入的帐号密码是否为空,接着通过 UserDao 中的 login 方法判断该用户是否为授权用户。下面是 LoginServlet.java 实现登录验证的核心代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("userName");
String password=request.getParameter("password");
request.setAttribute("userName", userName);
request.setAttribute("password", password);
if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){
request.setAttribute("error", "用户名或密码为空!");
request.getRequestDispatcher("index.jsp").forward(request, response);
return;
}
User user=new User(userName,password);
Connection con=null;
try {
con=dbUtil.getCon();
User currentUser=userDao.login(con, user);
if(currentUser==null){
request.setAttribute("error", "用户名或密码错误!");
//服务器跳转
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
//获取Session
HttpSession session=request.getSession();
session.setAttribute("currentUser", currentUser);
//客户端跳转
response.sendRedirect("main.jsp");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
主界面
主界面代码设计
为了防止非授权用户越过登录界面 index.jsp 通过 IP 直接跳转到主界面 main.jsp,将插入如下 JSP 代码到页面当中,当用户在没有输入帐号密码进行验证登录的情况下,系统强制跳转回登录界面。代码如下:
<%
// 用户权限验证
if(session.getAttribute("currentUser")==null){
response.sendRedirect("index.jsp");
return;
}
%>
外链引入 easyUI 后,插入 JavaScript 代码进行左侧导航栏的构建,以其规范的书写格式对代码进行编写,openTab 函数能通过赋值后的 url 把学生信息管理和班级信息管理内容展示到 iframe 框架内,管理元通过点击导航栏中的信息,实现管理员对班级信息和学生信息的操作。其代码如下:
```
```
班级信息管理界面
学生信息管理界面
学生、班级信息界面的功能(增删查改)详情请看代码。
参考文献
- 高校资讯网站平台的设计及实现(大连理工大学·尤虹)
- 基于B/S结构的学校管理信息系统的研究与开发(四川大学·徐永红)
- 基于J2EE平台的高校学生工作管理系统的设计与实现(电子科技大学·于建平)
- 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
- 高校信息管理系统的设计与实现(山东大学·郑小龙)
- 基于J2EE平台的高校学生工作管理系统的设计与实现(电子科技大学·于建平)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
- 攀枝花学院学生信息管理系统的设计与实现(电子科技大学·程江珂)
- 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
- 四川文理学院学生管理系统的设计与实现(电子科技大学·贺建英)
- 基于Spring的高校教学管理信息系统的设计与实现(西安电子科技大学·刘爱玉)
- 基于J2EE平台的高校学生工作管理系统的设计与实现(电子科技大学·于建平)
- 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
- 铜仁学院学生信息管理系统的设计与实现(厦门大学·丁凯)
- 学生综合信息管理平台的设计与实现(吉林大学·刘铁刚)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码货栈 ,原文地址:https://bishedaima.com/yuanma/35739.html