教师信息管理系统
大作业写的好好的突然来个中作业也是无语…反正就是个简略版的大作业啦。
大致要求是
- 管理校内教师的信息。
- 对于普通用户,提供查询功能(允许模糊查询),输入教师的姓名,可查询得到教师的相关信息(包括所属院系电话等)。
- 对于管理员,提供对教师表的增删改功能。
- 管理员必须要登录。
因为之前就在用jsp+html
写大作业了,所以这次界面什么的写起来很快,昨天完成了前端+管理员登录功能。
前端分为6个页面,分别是
home.html
欢迎界面(没什么卵用login.jsp
管理员登录界面query.jsp
普通用户查询界面add.jsp
(管理员)新增教师界面delete.jsp
(管理员)删除教师界面update.jsp
(管理员)更新教师信息界面
其实应该可以写得更简洁一些,但目前想不到更好的方法了,所以就每个功能都写了一个页面。
在这里放一下实现登录功能的前端,servlet,业务逻辑层和数据库层(别问我为什么要写这么多层!我乐意!(其实写到这里觉得业务逻辑层完全可以不用嘛
前端:login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*, java.util.*, java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
<style type="text/css">
.center {
position: absolute;
top: 50%;
left: 50%;
margin: -200px 0 0 -250px;
width: 500px;
height: 305px;
text-align: center;
border: solid 1px #666;
}
.menu {
position: absolute;
margin: 0px 0 0 -1px;
width: 100px;
height: 231px;
text-align: center;
border: solid 1px #666;
}
.main {
position: absolute;
margin: 0px 0 0 100px;
width: 399px;
height: 231px;
text-align: center;
border: solid 1px #666;
}
.result {
position: absolute;
margin: 306px 0 0 100px;
width: 399px;
height: 225px;
text-align: center;
border: solid 1px #666;
}
</style>
</head>
<body>
<%
if (request.getAttribute("result") != null) {
boolean registerResult = false;
try {
registerResult = Boolean.parseBoolean(request.getAttribute("result").toString());
} catch (NumberFormatException e) {
System.out.println("registerResult to int fail");
}
if (!registerResult) {
%>
<script type="text/javascript">
alert("用户名或密码错误,请重新登录");
</script>
<%
}
}
%>
<div class="center">
<h2>登录</h2>
<div class="menu">
<p>
<a>登录</a>
<p />
<p>
<a href="query.jsp">查询</a>
<p />
<p>
<a href="home.html">返回</a>
<p />
</div>
<div class="main">
<form action="login" method="post">
<br /> <br />
<p>
用户: <input type="text" name="Username" /><br />
</p>
<p>
密码: <input type="text" name="Password" /><br />
</p>
<input type="submit" value="登录"/>
</form>
</div>
</div>
</body>
</html>
servlet:ServletLogin.java
package 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 business.LoginUser;
/**
* Servlet implementation class ServletLogin
*/
@WebServlet("/login")
public class ServletLogin extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
System.out.println("in servlet login doPost");
String name = request.getParameter("Username");
String password = request.getParameter("Password");
LoginUser user = new LoginUser();
request.setAttribute("result", user.login(name, password));
if(user.login(name, password)){//若返回值为真 则进入新增页面
request.getRequestDispatcher("/add.jsp").forward(request, response);
}
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
业务逻辑层:LoginUser.java
package business;
import database.DBUser;
public class LoginUser {
public boolean login(String name, String password){
DBUser user = new DBUser();
if(!user.isExist(name, password))
return false;//用户名不存在
return true;
}
}
数据库层:DBUser.java
package database;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUser {
public boolean isExist(String name, String password){
boolean result = false;
DBConnect db = new DBConnect();
Connection conn = db.connect();
PreparedStatement pstmt;
String sql = "select ID from LoginUser where Username = ? and Password = ?";
ResultSet i = null;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, password);
i = pstmt.executeQuery();
if(i.next())
result = true;
pstmt.close();
conn.close();
//System.out.println("i = " + i);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("user isExist fail");
}
return result;
}
}
其中数据库层里有个DBConnect
类,是我自己写的连接数据库的类,就是调用了Class.forName()
和DriverManager.getConnection()
这个网上很多的,我就不贴了。
之后可能完成普通用户的查询功能。