返回顶部

一缕半夏微光

温柔半两,从容一生

导航

每周总结⑦

这周重新翻了一下看了一下这个公文流转系统,发现这里面有很多我没有理解的点,所以不好着手去写这个系统,今天搜了一下这个系统,然后自己重新设计了一下,设计出了一个简陋的版本,后续会精进的。

写了个简单的登录界面、系统管理功能页以及完成相应的登录功能

效果如下:

代码如下:

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为自增长的

这周暂时先写这么多。

posted on 2021-08-15 17:01  一缕半夏微光  阅读(106)  评论(0编辑  收藏  举报