基于Struts2 的日志管理系统的Java实现

1、首先,项目的架构如下:

        

2、com.sxl.dba 中:OracleConnector.java

package com.sxl.dba;
import java.sql.*;
//设计模式1:单例模式
public class OracleConnector {
    private static Connection conn;
    public static Connection getOracleConn()
    {
        //java bean
        try
        {
            //判断是否有打开过连接,如果打开过则返回已有连接,
            //如果没有打开过则新建立连接
            if(conn==null)
            {
                Class.forName("oracle.jdbc.OracleDriver");
                  String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
                  String user="system";
                  String pass="orcl1234";

                      //通过驱动管理器获取 oracle数据库连接
                  conn= DriverManager.getConnection(url, user, pass);
                System.out.println("数据库连接成功!");
            }
        }
        catch(Exception ex)
        {
            System.out.println("数据库连接失败:"+ex.getMessage());
        }

        return conn;
    }
}

3、com.sxl.pojos 中:Log.java 和User.java

package com.sxl.pojos;

import java.util.Date;

public class Log {    //对应数据库表名:log
    private int lid; //日志ID
    private String title;  //日志标题
    private String content; //日志内容
    private int uid;  //用户ID,对应的数据库字段:userid
    private Date date; //日志日期,对应数据库字段:logdate

    public int getLid() {
        return lid;
    }
    public void setLid(int lid) {
        this.lid = lid;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    //构造函数
    public Log(int lid, String title, String content, int uid, Date date) {
        super();
        this.lid = lid;
        this.title = title;
        this.content = content;
        this.uid = uid;
        this.date = date;
    }
    public Log() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
        return "Log [lid=" + lid + ", title=" + title + ", content=" + content
                + ", uid=" + uid + ", date=" + date + "]";
    }

}
package com.sxl.pojos;

public class User { //对应数据库表名为:loguser
    private int uid;  //用户ID,对应的数据库字段:userid
    private String name; //用户姓名
    private String pass; //用户密码

    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }

    public User(int uid, String name, String pass) {
        super();
        this.uid = uid;
        this.name = name;
        this.pass = pass;
    }
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
        return "User [uid=" + uid + ", name=" + name + ", pass=" + pass + "]";
    }
}

4、com.sxl.services 中:LogService.java 和UserService.java

package com.sxl.services;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.sxl.pojos.Log;

public class LogService {
    private Connection conn=null;

    public LogService() {
        conn=com.sxl.dba.OracleConnector.getOracleConn();
    }

    //根据日志ID查找
    public Log findByLid(int lid) {
        if (conn!=null) {
            try {
                Statement st=conn.createStatement();
                String sql="select * from log where lid=‘"+lid+"‘";
                ResultSet rs=st.executeQuery(sql);

                if (rs.next()) {
                    Log log=new Log();
                    log.setContent(rs.getString("content"));
                    log.setTitle(rs.getString("title"));
                    log.setLid(rs.getInt("lid"));
                    log.setUid(rs.getInt("uid"));
                    return log;
                }else {
                    System.out.println("连接出错,未查到!");
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
        return null;
    }

    //添加日志
    public boolean add(Log log) {
        try {
            Statement st=conn.createStatement();

            DateFormat format1=new SimpleDateFormat("yyyy-MM-dd");
            String date=format1.format(log.getDate());

            String sql="insert into log(title,content,userid,logdate) values(‘"+log.getTitle()+"‘,‘"+log.getContent()+"‘,‘"+log.getUid()+"‘,‘"+date+"‘)";
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

    //修改日志
    public boolean modify(Log log) {
        try {
            Statement st=conn.createStatement();
            Date nowDate=new Date();
            DateFormat format1=new SimpleDateFormat("yyyy-MM-dd");
            String date=format1.format(nowDate);
            String sql="update log set title=‘"+log.getTitle()+"‘,content=‘"+log.getContent()+"‘,logdate=‘"+date+"‘,where lid="+log.getLid();
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

    //根据用户ID查找
    public List<Log> findByUid(int uid) {
        List<Log> list=new ArrayList<Log>();
        if (conn!=null) {
            try {
                Statement st=conn.createStatement();
                System.out.println("进入查询...");
                String sql="select * from log where userid=‘"+uid+"‘";
                ResultSet rs=st.executeQuery(sql);
                while (rs.next()) {
                    System.out.println("查询结果为:");
                    Log log=new Log();

                    log.setContent(rs.getString("content"));
                    log.setTitle(rs.getString("title"));
                    log.setLid(rs.getInt("lid"));
                    log.setUid(rs.getInt("uid"));
                    log.setDate(rs.getDate("date"));

                    list.add(log);
                                    }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return list;
    }

    //删除日志
    public boolean del(int lid) {
        try {
            Statement st=conn.createStatement();
            String sql="delete from log where lid="+lid;
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
}
package com.sxl.services;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.sxl.pojos.User;

public class UserService {
     private Connection conn=null;

    public UserService() {
        conn=com.sxl.dba.OracleConnector.getOracleConn();
    }

    //检查(查找)用户
    public int find(User user) {
        if (conn!=null) {
            try {
                Statement st=conn.createStatement();
                String sql="select userid from loguser where name=‘"+user.getName().replace(‘\‘‘, ‘ ‘)+"‘ and pass=‘"+user.getPass().replace(‘\‘‘, ‘ ‘)+"‘";
                ResultSet rs=st.executeQuery(sql);

                if (rs.next()) {
                    return rs.getInt("uid");
                }else {
                    System.out.println("对不起,该用户不存在");
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return -1;
    }

    //添加用户
    public boolean add(User user) {
        try {
            Statement st=conn.createStatement();
            String sql="insert into loguser values(‘"+user.getUid()+"‘,‘"+user.getName()+"‘,‘"+user.getPass()+"‘)";
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

    //修改用户
    public boolean modify(User user) {
        try {
            Statement st=conn.createStatement();
            String sql="update loguser set name=‘"+user.getName()+"‘,pass=‘"+user.getPass()+"‘ where userid="+user.getUid();
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }

    //删除用户
    public boolean del(int uid) {
        try {
            Statement st=conn.createStatement();
            String sql="delete from loguser where userid="+uid;
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
}

5、com.sxl.actions 中:LogAction.java 和UserAction.java

package com.sxl.actions;

import java.text.DateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import java.util.List;
import com.opensymphony.xwork2.ActionSupport;

import com.sxl.pojos.Log;
import com.sxl.services.LogService;

public class LogAction extends ActionSupport {
    private int uid;
    private int lid;
    private Log log;

    //提取出公共的部分
    private LogService logService=new LogService();
    HttpServletRequest request=ServletActionContext.getRequest();

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public int getLid() {
        return lid;
    }

    public void setLid(int lid) {
        this.lid = lid;
    }

    public Log getLog() {
        return log;
    }

    public void setLog(Log log) {
        this.log = log;
    }

    public String  add() throws Exception {
        log.setDate(new Date());
        if (logService.add(log)) {
            return "success";
        }else {
            return "failed";
        }
    }

    public String getAllLog() throws Exception{
        List<Log> logList=logService.findByUid(uid);
        request.setAttribute("logList", logList);
        return "getAllLog";
    }

    public String getByLid() throws Exception{
        Log log=logService.findByLid(lid);
        request.setAttribute("log", log);
        return "logModify";
    }

    public String del() throws Exception{
        if (logService.del(lid)) {
            List<Log> logList=logService.findByUid(uid);
            request.setAttribute("logList", logList);
            return "success";
        }
        return "failed";
    }

    public String modify () throws Exception {
        System.out.println("修改:"+log.toString());
        if (logService.modify(log)) {
            return  "success";
        }
        return  "failed";
    }
}
package com.sxl.actions;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.sxl.pojos.User;
import com.sxl.services.LogService;
import com.sxl.services.UserService;

public class UserAction extends ActionSupport {
        private User user;
        private String validatePass;

        //提取出公共的部分
        private UserService userService=new UserService();
        HttpServletRequest request=ServletActionContext.getRequest();

        public User getUser() {
            return user;
        }
        public void setUser(User user) {
            this.user = user;
        }
        public String getValidatePass() {
            return validatePass;
        }
        public void setValidatePass(String validatePass) {
            this.validatePass = validatePass;
        }

        //用户登录
        public String login() throws Exception {
            int uid=userService.find(user);
            if (uid!=-1) {
                user.setUid(uid);
                request.getSession().setAttribute("user", user);
                return "personalCenter";
            }else {
                return "failed";
            }
        }

        //添加用户
        public String add() throws Exception {
            if (!user.getPass().equals(validatePass)) {
                return "failed";
            }
            if (userService.add(user)) {
                return "personalCenter";
            }else {
                return "failed";
            }
        }

        public String modify() throws Exception{
            if (!user.getPass().equals(validatePass)) {
                return "failed";
            }if (userService.modify(user)) {
                return "success";
            }else {
                return "failed";
            }
        }
}

6、struts.xml 配置文件如下:

对应的代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

    <package name="logsystem" namespace="/" extends="struts-default">
        <action name="user" class="com.sxl.actions.UserAction">
            <result name="personalCenter" type="dispatcher">/personalCenter.jsp</result>
            <result name="success" type="dispatcher">/success.jsp</result>
            <result name="failed" type="redirect">/failed.jsp</result>
        </action>

        <action name="log" class="com.sxl.actions.LogAction">
            <result name="getAllLog" type="dispatcher">/getAllLog.jsp</result>
            <result name="success" type="dispatcher">/success.jsp</result>
            <result name="logModify" type="dispatcher">/logModify.jsp</result>
            <result name="failed" type="redirect">/failed.jsp</result>
        </action>
    </package>
</struts>    

& jsp s~

package com.sxl.services;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.sxl.pojos.User;

public class UserService {
     private Connection conn=null;

public UserService() {
        conn=com.sxl.dba.OracleConnector.getOracleConn();
    }
    
    //检查(查找)用户
    public int find(User user) {
        if (conn!=null) {
            try {
                Statement st=conn.createStatement();
                String sql="select userid from loguser where name=‘"+user.getName().replace(‘\‘‘, ‘ ‘)+"‘ and pass=‘"+user.getPass().replace(‘\‘‘, ‘ ‘)+"‘";
                ResultSet rs=st.executeQuery(sql);
                
                if (rs.next()) {
                    return rs.getInt("uid");
                }else {
                    System.out.println("对不起,该用户不存在");
                }                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }            
        }    
        return -1;
    }
     
    //添加用户
    public boolean add(User user) {
        try {
            Statement st=conn.createStatement();
            String sql="insert into loguser values(‘"+user.getUid()+"‘,‘"+user.getName()+"‘,‘"+user.getPass()+"‘)";
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
    
    //修改用户
    public boolean modify(User user) {
        try {
            Statement st=conn.createStatement();
            String sql="update loguser set name=‘"+user.getName()+"‘,pass=‘"+user.getPass()+"‘ where userid="+user.getUid();
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
    
    //删除用户
    public boolean del(int uid) {
        try {
            Statement st=conn.createStatement();
            String sql="delete from loguser where userid="+uid;
            st.execute(sql);
            return true;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
        return false;
    }    
}

时间: 2024-10-15 02:33:49

基于Struts2 的日志管理系统的Java实现的相关文章

基于SSM的汽车出租管理系统-mysql&amp;java汽车出租管理系统租车管理系统

基于SSM的汽车出租管理系统-mysql&java汽车出租管理系统租车管理系统 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映

基于flume的日志管理系统实现

一.flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力.我们选用flume对内部多个系统的日志进行信号的采集.管理和查询,目前仅实现了信息管理功能,进一步会对报警.统计等功能进行开发. flume的主要组件包括: Source,SourceRunner,Interceptor,Channel,Cha

Java 基于log4j的日志工具类

Java 基于log4j的日志工具类 对log4j日志类进行了简单封装,使用该封装类的优势在于以下两点: 1.不必在每个类中去创建对象,直接类名 + 方法即可 2.可以很方便的打印出堆栈信息 package com.tradeplatform.receiveorder.util; import java.io.PrintWriter; import java.io.StringWriter; import org.apache.log4j.Logger; /** * @Description 日

基于SSM的健身俱乐部管理系统-java健身俱乐部管理系统javaweb健身房管理系统

基于SSM的健身俱乐部管理系统-java健身俱乐部管理系统javaweb健身房管理系统 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台spring

基于SSM的图书管理系统(读者管理借阅管理)-java图书管理系统图书馆管理

基于SSM的图书管理系统(读者管理借阅管理)-java图书管理系统图书馆管理 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射

JAVA基于web的师资管理系统,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术.今天将为大家分析一个基于web的师资管理系统(当今世界是一个信息高度发展的世界,计算机技术的高度发展,并且广泛的运用到生活中的各个领域,给人类带来了快的进步的同时也带来了进一步的革新.特别是,近年来,高校的办学规模.教师队伍在不断扩大增加,这些因素导致我们传统的教学管理模式已不适用于高速发展的信息时代模式,高校教师的各方面素质也在不断提高,高校的管理方式也相应

logstash+elasticsearch +kibana 日志管理系统

Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志.kibana 也是一个开源和免费的工具,他可以帮助您汇总.分析和搜索重要数据日志并提供友好的web界面.他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面. 目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还

信息管理系统(java)

目录 摘要:.... 2 绪论.... 2 课程目的.... 2 课程研究的意义... 2 一.java课程设计目的和要求... 3 1.1课程设计目的... 3 1.2课程设计要求... 3 1.3系统功能图... 4 二.程序的设计与实现... 4 2.1登陆界面的设计与实现... 4 2.2密码注册界面的设计和实现... 5 2.3密码找回界面的设计和实现... 6 2.4信息管理主界面设计和实现... 7 2.5信息修改界面的设计和实现... 12 2.6新建文件的设计和实现... 14

基于plusgantt的项目管理系统实战开发

<基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自定义工作流)> 课程讲师:Adam 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring 3+JDBC+RMI的架构.jquery.工作流 涉及项目:项目管理系统 咨询QQ:1337192913(小公子) 本课程是某航空研究所的真正项目的缩影.在课程中,将实际项目的业务进行了缩减,但是主要的技术点全部都讲解到了. 课程内容虽然不多,但是麻雀虽小五脏俱全,通过学习本课程,可以掌握到