小型学生报道管理系统总结

JSP通过tomcat编译后的java和class文件在Tomcat/work/Catalina/localhost/项目名称/org/apache/jsp

一、

JSP+MySql实现。

录取新生→报道分班→财务交费→宿舍分配

首先业务需求分析,需要设计表,学生表(Student)、用户表(adminuser)、班级表(ClassTa)、专业表(Speciality)和宿舍表(Bedchamber)。

学生的ID是学生表主键,每个学生有班级号(外键)、专业号(外键)、宿舍号(外键)等。属于一对多的关系,如一个宿舍号对应六个学生。

应用主外键关联法

班级表A:班级ID (A表主键)      学生表B:学生ID(B表主键)

             其他                                        班级ID(外键)

                                                           其他

在数据库中创建用户表,并添加系统管理员和普通管理员,系统管理员权限最大,普通管理员可以管理系统的部分功能。

index.jsp是主界面

1 <%if(session.getAttribute("adminusername")==null||session.getAttribute("adminusername").toString().length()==0)
2 response.sendRedirect("login.jsp"); %>

在界面开头插入session判断,是否登录,没有登录跳转到login.jsp页面。

 1 <%Connection conn=JDBCMysql.getConnection();%>
 2 <%
 3 String adminusername=request.getParameter("adminusername");
 4 String adminuserpassword=request.getParameter("adminuserpassword");
 5 String action=request.getParameter("action");
 6 String errormsg=new String();
 7 if("login".equals(action)){
 8 String sql="select * from adminusername where adminname=? and adminpassword=?";
 9 PreparedStatement state=conn.prepareStatement(sql);
10 state.setString(1,adminusername);
11 state.setString(2,adminuserpassword);
12 ResultSet rs=state.executeQuery();
13 if(rs.next()){
14 session.setAttribute("adminusername", adminusername);
15 session.setAttribute("adminuserrole",rs.getString("adminuserole"));
16 response.sendRedirect("index.jsp");
17 }
18 else{
19 errormsg="用户名或密码输入错误";
20 }
21 }
22  %>

在JSP中,<%%>之间的代码在服务器端执行。现数据库用户表中已经添加了两个用户,用户名和password查找符合才登录成功。sql=select * from adminusername where adminname=? and adminpassword=?是带参数的SQL语句,state.setString(1,adminusername)是在第一个?处,放入参数adminusername。

关于配置:

安装Tomcat,讲tomcat部署到Myeclipse中,安装MySql,使用SQLyog可视化界面操作MySql,建表,添加元组等。下载MySql的JDBC驱动,讲其放在项目下的JAR包文件库中(Java EE libraries和WebRoot-WEB-INF-lib下都放入,在WEB-INF-lib出现无法复制jar包到目录的情况,需要ctrl+c在硬盘目录下的jar包,再ctrl+v),在项目src下添加jdbc包,创建一个java类,此类连接mysql数据库并返回一个数据库连接对象,用此对象对mysql进行操作。

 1 package jdbc;
 2 
 3 import java.sql.*;
 4 
 5 public class JDBCMysql {
 6 
 7    public static Connection getConnection() throws SQLException, 
 8              java.lang.ClassNotFoundException 
 9     {
10 
11         Class.forName("com.mysql.jdbc.Driver");
12         String url = "jdbc:mysql://localhost:3306/test1";        
13          String username = "root123";
14         String password = "123456";
15 
16          Connection con = DriverManager.getConnection(url, username, password);        
17         return con;      
18      }
19  
20  public static void closeConn(Connection con){
21      try{
22          con.close();
23      }catch(Exception e){
24          e.printStackTrace();}
25      }
26  }
27    

其他文件中需要使用数据库,调用此类即可。

在Myeclipse中编写jsp代码,放在Webroot下。编写好后,讲项目部署在Tomcat服务器,启动tomcat服务器。

点击左边第一个图标部署项目。

服务器启动后,浏览器本地打开项目,myeclipse界面下方console窗口有一些提示,如stacktrack可以排查错误。

二、

从index.jsp跳转到specialityadmin的专业管理界面。

注意编码问题:

在添加专业,输入中文,request.getParameter("specialityname");使用request.getParameter得到中文,对其进行specialityname=new String(specialityname.getBytes("ISO-8859-1"));

问题分析如图:

添加专业时,专业ID是主键,不可为空,如果专业ID是学生ID的外键,在删除此专业ID的专业时,若此专业ID存在于学生表中,那么删除会出现问题(数据库的安全性)。

原文地址:https://www.cnblogs.com/heiming/p/5932469.html