zoukankan      html  css  js  c++  java
  • 小型学生报道管理系统总结

    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存在于学生表中,那么删除会出现问题(数据库的安全性)。

  • 相关阅读:
    京东书4
    哈工大信息检索研究室 语言技术平台相关技术简介
    VIM使用小技巧重新载入文件
    在亚马逊网站上查看此物品
    automake autoconf m4 suite for autotools download
    XZ压缩最新压缩率之王
    在亚马逊网站上查看此物品
    京东书3
    欢迎访问 Babel 汉英平行语料库
    autotools 使用实例ckelselChinaUnix博客
  • 原文地址:https://www.cnblogs.com/heiming/p/5932469.html
Copyright © 2011-2022 走看看