每周总结⑦
这周重新翻了一下看了一下这个公文流转系统,发现这里面有很多我没有理解的点,所以不好着手去写这个系统,今天搜了一下这个系统,然后自己重新设计了一下,设计出了一个简陋的版本,后续会精进的。
写了个简单的登录界面、系统管理功能页以及完成相应的登录功能
效果如下:
代码如下:
FileDao.java
package fileDao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import fileUtil.LoginUser;
import filedatabase.FileDataBase;
public class FileDao {
public boolean Login(LoginUser loginUser) {
Connection conn=null;
PreparedStatement pstm=null;
ResultSet rs=null;
boolean judge=false;
try {
conn=FileDataBase.getConnection();
String sql="select * from Login where name=? and password=? and status=?";
System.out.println(sql);
pstm=conn.prepareStatement(sql);
pstm.setString(1, loginUser.getName());
pstm.setString(2, loginUser.getPassword());
pstm.setString(3, loginUser.getStatus());
rs=pstm.executeQuery();
if(rs.next()) {
String rName,rPassword,rStatus;
rName=rs.getString("name");
rPassword=rs.getString("password");
rStatus=rs.getString("status");
System.out.println("name:"+rName+","+"password:"+rPassword+",status:"+rStatus);
judge=true;
}
}catch(Exception e) {
e.printStackTrace();
}finally {
//SQL执行完成后释放相关资源
FileDataBase.close(conn,pstm,rs);
}
return judge;
}
}
FileDataBase.java
package filedatabase;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class FileDataBase {
public static final String url="jdbc:mysql://localhost:3306/filesystem";//URL
public static final String user="root";//用户名
public static final String password="";//密码
public static void main(String[] args) {
getConnection();
}
/**
* 连接数据库
* @return
*/
public static Connection getConnection(){
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
conn=DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
}catch(Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库
*/
public static void close(Connection conn,PreparedStatement pstm) {
System.out.println("关闭SQL(conn,pstm)");
if(pstm!=null) {
try {
pstm.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection conn,PreparedStatement pstm,ResultSet rs) {
System.out.println("关闭SQL(conn,pstm,rs)");
if(pstm!=null) {
try {
pstm.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(rs!=null) {
try {
rs.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
FileServlet.java
package fileServlet;
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 fileDao.FileDao;
import fileUtil.LoginUser;
/**
* Servlet implementation class FileServlet
*/
@WebServlet("/FileServlet")
public class FileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FileServlet() {
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");
System.out.println("进入fileServlet");
String name=request.getParameter("name");
String password=request.getParameter("password");
String status=request.getParameter("status");
System.out.println("name:"+name);
System.out.println("password:"+password);
System.out.println("status:"+status);
LoginUser loginUser=new LoginUser(name,password,status);
FileDao fileDao=new FileDao();
int isOK=0;
if(fileDao.Login(loginUser)) {
isOK=1;
}else {
isOK=0;
}
/*
* 1.管理员
* 2.厂长
* 3.副厂长
* 4.办公室
* 5.财务部
* 6.销售部
* 7.生产部
*/
if(isOK==1) {
System.out.println("数据库验证成功");
if(status.equals("1")) {
System.out.println("管理员");
request.getRequestDispatcher("AdminPage.jsp").forward(request,response);
}else if(status.equals("2")) {
System.out.println("厂长");
}else if(status.equals("3")) {
System.out.println("副厂长");
}else if(status.equals("4")) {
System.out.println("办公室");
}else if(status.equals("5")||status.equals("6")||status.equals("7")) {
System.out.println("5|6|7");
}else {
System.out.println("系统出错!");
request.getRequestDispatcher("index.jsp").forward(request,response);
}
}else {
System.out.println("数据库验证失败");
request.getRequestDispatcher("index.jsp").forward(request,response);
}
}
/**
* @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);
}
}
LoginUser.java
package fileUtil;
public class LoginUser {
private String name;
private String password;
private String status;
public LoginUser() {}
public LoginUser(String name,String password,String status) {
super();
this.name=name;
this.password=password;
this.status=status;
}
@Override
public String toString() {
return "LoginUser{" +
"name=" + name + '\'' +
", password='" + password + '\'' +
", status=" + status +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="FileServlet" method="post">
<table align="center">
<tr>
<td>帐户:</td>
<td><input type="text" id="name" name="name"
placeholder="用户名" required="required"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" id="password" name="password"
placeholder="●●●●●●" required="required"></td>
</tr>
<tr>
<td>身份:</td>
<td><select name="status" id="status">
<option value="0" selected>--请选择--</option>
<option value="1">1.管理员</option>
<option value="2">2.厂长</option>
<option value="3">3.副厂长</option>
<option value="4">4.办公室</option>
<option value="5">5.财务部</option>
<option value="6">6.销售部</option>
<option value="7">7.生产部</option>
</select></td>
</tr>
</table>
<table align="center">
<tr style="text-align: center">
<td><input type="submit" id="button" name="登录" value="登录"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
AdminPage.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>系统管理功能页</title>
<link rel="stylesheet" href="layui/css/layui.css">
<script src="layui/layui.js"></script>
</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo">系统管理功能页</div>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">欢迎光临</li>
<li class="layui-nav-item"><a href="index.jsp">安全退出</a></li>
</ul>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<!-- 左侧导航区域(可配合layui已有的垂直导航) -->
<ul class="layui-nav layui-nav-tree" lay-filter="test">
<li class="layui-nav-item leftdaohang" data-url="User.jsp"
mytitle="用户管理"><a>用户管理</a></li>
<li class="layui-nav-item leftdaohang" data-url="Role.jsp"
mytitle="角色管理"><a>角色管理</a></li>
<li class="layui-nav-item leftdaohang" data-url="File.jsp"
mytitle="公文流转流程管理"><a>公文流转流程管理</a></li>
</ul>
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<!--tabs标签-->
<div class="layui-tab layui-tab-card" lay-filter="demo"
lay-allowclose="true">
<ul class="layui-tab-title">
</ul>
<div class="layui-tab-content"></div>
</div>
</div>
<div class="layui-footer">
<!-- 底部固定区域 -->
底部固定区域
</div>
</div>
<script>
layui.use('element', function(){
var $ = layui.jquery
,element = layui.element; //Tab的切换功能,切换事件监听等,需要依赖element模块
//触发事件
var active = {
tabAdd: function(){
//新增一个Tab项
var htmlurl=$(this).attr('data-url');
var mytitle=$(this).attr('mytitle');
//先判断是否已经有了tab
var arrayObj = new Array(); //创建一个数组
$(".layui-tab-title").find('li').each(function() {
var y = $(this).attr("lay-id");
arrayObj.push(y);
});
var have=$.inArray(mytitle, arrayObj); //返回 3,
if (have>=0) {
//tab已有标签
element.tabChange('demo', mytitle); //切换到当前点击的页面
} else{
//没有相同tab
element.tabAdd('demo', {
title:mytitle //用于演示
,content: '<iframe style="width: 100%;height:400px;" scrolling="no" src='+htmlurl+'></iframe>'
,id: mytitle //实际使用一般是规定好的id,这里以时间戳模拟下
})
element.tabChange('demo', mytitle); //切换到当前点击的页面
}
}
};
$(".leftdaohang").click(function(){
var type="tabAdd";
var othis = $(this);
active[type] ? active[type].call(this, othis) : '';
});
});
</script>
</body>
</html>
User.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户管理</title>
</head>
<body>
用户管理
</body>
</html>
Role.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>角色管理</title>
</head>
<body>
角色管理
</body>
</html>
File.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>公文流转流程管理</title>
</head>
<body>
公文流转流程管理
</body>
</html>
在WebContent内需要将layui包添加进去
此为layui包的下载地址:https://www.layui.com/
并且需要在lib中导入MySQL的包,用于与数据库的连接(可以在网上搜)
总体目录如下:
数据库:
表名login,其中id为自增长的
这周暂时先写这么多。