精华内容
下载资源
问答
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业员工日志管理, 该项目可用各类java课程设计大作业中, 企业员工日志管理的系统架构分为前后台两部分, 最终实现在线上进行企业员工日志管理各项功能,实现了...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业员工日志管理, 该项目可用各类java课程设计大作业中, 企业员工日志管理的系统架构分为前后台两部分, 最终实现在线上进行企业员工日志管理各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类企业员工日志管理相关的实体进行管理。

    该企业员工日志管理为一个采用mvc设计模式进行开发B/S架构项目,并采用分层架构对项目进行架构, 分为pojo+action+service, 其中pojo表明该系统的各类数据库表对应的实体, 在对企业员工日志管理进行详细的需求分析后与数据库设计后, 设计实现了如下模块, 即登录模块,权限管理模块, 用户管理模块,企业员工日志管理信息管理模块等。并通过java抽象类对其实现

    开发环境

    java环境: Jdk1.8

    Ide: Eclipse EE或者jetbrains Idea

    数据库: mysql5.6以上

    依赖框架:javascript, css, jsp, servlet, filter

    系统需求分析与流程图

    一般而言, 此类的javaweb课程设计大作业都比较简单, 主要目的在于掌握基础的web开发知识, 所以在实现该企业员工日志管理的课程设计的时候, 需要首先收集其他的企业员工日志管理产品分析, 主要精力用于完成数据库表的设计, 以及基于mvc模式进行代码编写, 页面可以简单的利用bootstrap进行搭建, 进而完成企业员工日志管理各个模块的开发

    数据库课程设计

    数据库设计是整个企业员工日志管理系统能否正常运转的核心, 合理的数据库设计直接影响到企业员工日志管理是否能够正常运行, 本系统采用mysql数据库作为数据存储, 引擎采用innoddb

    系统演示视频

    运行截图

    d01198a72ae1fbc0b17d99c5eb17e7cb.png

    基于jsp的企业员工日志管理-登陆功能界面

    b021dd6a54466dae4a36ef28200e943d.png

    基于jsp的企业员工日志管理-前台首页

    d5a0b1361932716d2437d4ecbea0e2e3.png

    基于jsp的企业员工日志管理-后台信息管理页面

    f35fc10aa56dcd3ce9a5b095d28af71e.png

    企业员工日志管理系统架构图

    c9fef0dcc5ae6ef0f66e8b4ab0cbcb6a.png

    注意事项

    该基于jsp的企业员工日志管理项目自带源码, 论文, sql数据库, 答辩ppt, 中期检查报告

    项目首页登陆地址 https://localhost:8080/login.jsp

    项目后台陆地址 https://localhost:8080/admin/login.jsp

    测试用户 cswork 密码 123456

    测试管理员 admin 密码 admin

    功能列表

    企业员工日志管理系统登陆模块, 实现企业员工日志管理系统的登陆注册权限角色用户的增删改查

    企业员工日志管理用户管理模块, 实现企业员工日志管理系统的信息管理与增删改查

    前台信息管理模块, 面向普通用户, 实现普通用户对企业员工日志管理的录入 修改 删除 自定义查询

    超级管理员管理, 实现后台管理员对企业员工日志管理系统的各个模块管理功能, 各个子模块高内聚低耦合

    展开全文
  • 1.搭建开发平台① 下载JDK1.6安装并配置好环境变量② 下载eclipse3.6安装包,解压③ 下载Google Plugin for Eclipse3.6,解压后将插件包中feature下的文件复制到 ...下载appengine-java-sdk,在eclipse中...

     1.搭建开发平台

       下载JDK1.6安装并配置好环境变量

       下载eclipse3.6安装包,解压

       下载Google Plugin for Eclipse3.6,解压后将插件包中feature下的文件复制到  eclipsefeature目录下,将插件包中plugin下的文件复制到eclipseplugin目录下

       下载appengine-java-sdk,在eclipse中依次点击Window>Preference>Google>App Engine>Add,添加sdk根目录

    添加appengine java sdk环境

     

    2.创建工程并测试

    创建一个新的Web Application

    新建名为zqspace的项目,包名为cn.edu.xtu,项目目录结构如图示

    web应用部署到Google App Engine 

    3.开发个人空间zqspace

    1)需求分析

    2)数据模型设计

    3)页面设计

    ?       首页

    ?       日志列表页面

    ?       写日志的界面

    4) 实体类与业务逻辑编码

    ?       读取日志

    ?       删除日志

    ?       写日志

    ?       修改日志

    ?       权限管理

    ?       4.项目部署

    ?       编码完成后,先在本地测试,通过后,就可以将项目发布到Google App Engine


    time:2014.12.03

    展开全文
  • 日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现。  2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限、角色、用户的写操作、修改操作、删除操作等  3.确定使用的通知方式:使用...

    一、日志管理相关分析

      1.日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现。

      2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限、角色、用户的写操作、修改操作、删除操作等

      3.确定使用的通知方式:使用环绕通知。复习一下环绕通知,所谓环绕通知实际上就是AOP代理对接口中声明方法的执行进行拦截,在执行方法之前或者之后进行一些操作,在日志管理功能模块中,我们对Service接口中声明的方法进行拦截,如果是对系统进行的修改操作的方法,则将方法执行之后就需要将相关信息保存下来方便以后查看,比如是谁登陆的系统进行的修改(最重要),执行的是什么方法,方法的参数是什么,执行成功额还是失败了,方法的返回值是什么,执行方法的时间是什么等等。

      4.日志管理功能在系统中的体现:单击导航菜单中的"日志管理"超链接,查看所有的系统的变更历史记录。

    二、日志实体和相关类的书写

      1.根据一种的分析,得到了以下的日志实体

    1 public class Log {
    2     private String logId;                    //日志消息标识ID
    3     private String operator="";                //操作人
    4     private Date operatorDate=new Date();    //操作日期
    5     private String operatorName;            //操作的名称(方法名)
    6     private String operateParams;            //操作参数
    7     private String operateResult="";            //操作结果(success|failure)
    8     private String resultMessage="";            //结果消息
    9 }

      2.DAO类的书写和Service的书写略。

      3.创建日志切面

      日志切面提供了保存保存日志的详细方法(通知),该方法将会拦截目标方法的执行并且记录该方法执行过程中的详细信息。

     1 package com.kdyzm.aspect;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpSession;
     5 
     6 import org.apache.struts2.ServletActionContext;
     7 import org.aspectj.lang.ProceedingJoinPoint;
     8 
     9 import com.kdyzm.domain.Log;
    10 import com.kdyzm.domain.User;
    11 import com.kdyzm.service.LogService;
    12 import com.kdyzm.utils.StringUtils;
    13 
    14 public class Logger {
    15     private LogService logService;
    16     public LogService getLogService() {
    17         return logService;
    18     }
    19     public void setLogService(LogService logService) {
    20         this.logService = logService;
    21     }
    22     //通知方法
    23     public Object record(ProceedingJoinPoint joinPoint) throws Throwable{
    24         Log log=new Log();
    25         try{
    26             //获取操作人
    27             HttpServletRequest request=ServletActionContext.getRequest();
    28             if(request!=null){
    29                 HttpSession session=request.getSession();
    30                 User user=(User) session.getAttribute("user");
    31                 if(user!=null){
    32                     log.setOperator(user.getUserId()+"-"+user.getEmail());//设置操作人
    33                 }
    34             }
    35             
    36             //设置方法名
    37             String methodName=joinPoint.getSignature().getName();
    38             log.setOperatorName(methodName);
    39             
    40             //获取参数列表
    41             Object[] params=joinPoint.getArgs();
    42             log.setOperateParams(StringUtils.arr2String(params));
    43             
    44             //操作结果和结果消息的获取
    45             Object obj=joinPoint.proceed();
    46             log.setOperateResult("SUCCESS");
    47             
    48             if(obj!=null){
    49                 log.setResultMessage(obj.toString());
    50             }
    51             return obj;            //返回执行结果
    52         }catch(Exception e){
    53             log.setOperateResult("FAILURE");
    54             log.setResultMessage(e.getMessage());
    55         }finally{
    56             logService.saveLog(log);
    57         }
    58         return null;
    59     }
    60 }

      4.配置spring配置文件applicationConext.xml

        (1)首先将切面注入到spring容器

    <bean id="logger" class="com.kdyzm.aspect.Logger">
            <property name="logService" ref="logService"></property>
        </bean>  

        (2)在aop配置中声明切入点表达式,表示对那些方法进行日志记录

          注意这些方法都在事务通知上有定义,但是不能直接使用事务通知中的声明,因为还有不同之处:必须刨除掉logService中的所有方法,否则最后肯定会抛出堆栈溢出的异常。

          分析原因:logService中的记录方法本身也是写操作(默认加上了事务),如果是写操作按照规则是需要写入日志表的,但是写入的时候又被AOP日志代理拦截,每次想写的时候都被日志AOP代理拦截,最终这种无限递归方式就会导致堆栈溢出,注意以下的切入点表达式的写法已经将logService刨除掉了。

    1 <aop:pointcut
    2             expression="(execution(* *..*Service.save*(..))
    3                                     or execution(* *..*Service.update*(..))
    4                                     or execution(* *..*Service.delete*(..))
    5                                     or execution(* *..*Service.batch*(..))
    6                                     or execution(* *..*Service.create*(..))
    7                                     or execution(* *..*Service.new*(..))) and !bean(logService)"
    8             id="loggerPointcut" />

        (3)切面配置,声明使用哪个切面中的哪些方法使用何种通知方式在指定的切入点上织入到目标对象

    <aop:aspect id="loggerAspect" ref="logger" order="1">
      <aop:around method="record" pointcut-ref="loggerPointcut" />
    </aop:aspect>

          这里的意思是使用logger切面,使用切面中的record方法以环绕通知的方式在loggerPointcut指定的切入点上织入到目标对象(Service对象)。

      5.显示所有日志列表

        基本显示是没有什么问题的,但是这里使用了静态调用的方法,可以直接在jsp页面调用某个类的静态方法,这里由于可能会出现参数名称过长的问题,必须在在这里对显示的长度进行限制。

        (1)com.kdyzm.utils.StringUtils类中定义静态方法setTagContentLimitLength,默认长度为15,也就是说最多只是显示15个字符。

     1 //通过jsp页面的静态调用可以直接调用某个类的某个方法
     2     public static String setTagContentLimitLength(String string){
     3         int length=15;
     4         System.out.println("访问了setTagContentLimitLength方法!"+string);
     5         if(string !=null){
     6             if(string.length()>length){
     7                 return string.substring(0,length)+"......";
     8             }else{
     9                 return string;
    10             }
    11         }
    12         return "";
    13     }

        (2)在jsp页面中调用,调用新式:<s:property value="@类的全名@方法名(参数列表)"/>

    <s:iterator value="%{#logList}" status="st">
      <tr>
        <td><s:property value="operator" /></td>
        <td><s:property value="operatorName" /></td>
        <td><s:property value="@com.kdyzm.utils.StringUtils@setTagContentLimitLength(operateParams)" /></td>
        <td><s:property value="operateResult" /></td>
        <td><s:property value="resultMessage" /></td>
        <td><s:date name="operatorDate" format="yyyy/MM/dd HH:mm:ss" /></td>
      </tr>
    </s:iterator>

        (3)如果只是以上两步肯定还会报错,因为strutrs2默认禁用静态调用,需要在配置文件中开启,这里为了方便起见,直接使用了struts.properties进行了配置

     1 struts.i18n.encoding=UTF-8
     2 struts.action.extension=action,,
     3 struts.serve.static.browserCache=false
     4 struts.i18n.reload=true
     5 struts.configuration.xml.reload=true
     6 struts.devMode=true
     7 struts.ui.theme=simple
     8 struts.enable.DynamicMethodInvocation=true
     9 struts.multipart.maxSize=2097152
    10 struts.ognl.allowStaticMethodAccess=true

    三、测试日志

     

      1.新建调查之后查看日志:

      2.将新建的调查删除掉之后:

      

    转载于:https://www.cnblogs.com/kuangdaoyizhimei/p/5058963.html

    展开全文
  • 主要功能:登录,注册,日志管理,图片上传 刚学习flex的朋友可以参考 资源太大不能上传,项目中缺少acrobat-core.jar包,请谅解,大家可以自己下载 有疑问的可以留言,
  • 第一步:设置logging.properties的内容(放在resource文件夹...#对日志的输出进行设置(主要是file类) #java.util.logging.FileHandler.pattern = %h/java%u.log #下面的是输出到制定的目录下 java.util.logging.File

    第一步:设置logging.properties的内容(放在resource文件夹下面)

    #输出两种方式
    handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    .level= FINE
    #对日志的输出进行设置(主要是file类)
    #java.util.logging.FileHandler.pattern = %h/java%u.log
    #下面的是输出到制定的目录下
    java.util.logging.FileHandler.pattern = D:\\software\\idea\\idealianxicode\\springboot1\\src\\main\\resources/java%u.log
    #日志限制大小
    java.util.logging.FileHandler.limit = 5000
    java.util.logging.FileHandler.count = 1
    #设置输出格式
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    #对文件设置输出编码格式(因为包含中文字符)
    java.util.logging.FileHandler.encoding = UTF-8
    #对日志进行追加
    java.util.logging.FileHandler.append = true
    
    
    #下面主要是为控制台设置输出格式
    java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

    第二步:编写测试程序

      @Test
        public void test() throws IOException {
            InputStream resourceAsStream = testMd5.class.getClassLoader().getResourceAsStream("logging.properties");
            LogManager logManager = LogManager.getLogManager();
            logManager.readConfiguration(resourceAsStream);
            Logger logger = Logger.getLogger("com.testMd5");
            int age = 3;
            String name ="myName";
            logger.info("你的姓名是:"+name+"你的年龄是:"+age);
            logger.fine("看看输出了吗");
            logger.info("this is a test data");
    
        }
    

    第三步:控制台查看相应的输出结果

    九月 27, 2020 12:15:59 上午 com.test.testMd5 test
    信息: 你的姓名是:myName你的年龄是:3
    九月 27, 2020 12:15:59 上午 com.test.testMd5 test
    详细: 看看输出了吗
    九月 27, 2020 12:15:59 上午 com.test.testMd5 test
    信息: this is a test data

    第四步:日志文件查看相应的结果

     

    展开全文
  • 日常编码过程中,我们经常都会遇到在处理实际领域业务前后附加的逻辑,例如:权限校验,写操作日志,事务管理,推送等等。spring提供了一种技术:面向切面的编程,即 AOP,它允许程序员对横切关注点或行为进行模块化...
  • java程序日志管理

    千次阅读 2017-02-22 19:59:06
    而从某种意义上来说,日志管理实际上也不需要初入这一行的人来管,他们只需要负责实现自己的主要业务逻辑和功能就好了。 我当初刚入行的时候就有很长一段时间完全不用去关心日志,到后来偶尔涉及到的时候,也都是从...
  • 之前一直写.net,没玩过spring,一直没用过aop(面向切面编程)这类功能,当然不是说.net里面没有这类...import java.lang.annotation.*;/*** @author jiankunking* @Date: 2016/8/15* @Time: 11:09* @annotation O...
  • 手把手实现日志管理

    2020-06-10 21:22:36
    目录实现日志管理其它可能存在的问题有多个类都需要写入同一个日志文件日志文件输出的日期格式不符合yy-MM-dd HH:mm:ss调用日志查询功能结束后抛出了java.util.NoSuchElementException原因解决方法调用日志管理功能...
  • 实现管理员操作数据的记录。效果如下 二,代码实现 基于注解的Aop日志记录 1.Log实体类 package com.ideal.manage.guest.bean.log; import javax.persistence.*; import java.io.Serializable; import ...
  • Java日志

    2021-04-10 19:21:46
    实现型:提供了具体的日志收集/管理功能。 Log4j J.U.L Logback Log4j2 桥接类:多种日志框架混用时,需要桥接类完成转换,统一成一种进行输出。 slf4j-jdk14 slf4j-log4j12 log4j-slf4j-impl slf4j-jcl … ...
  • AOP实现日志管理

    2019-10-07 17:16:44
    做项目时,往往需要一个日志管理功能来记录用户的操作记录。实现日志管理的方式有很多,主要用过滤器、拦截器、AOP等,本文将详细介绍用AOP来实现操作日志的管理。主要步骤如下: 创建自定义注解 package javax....
  • java日志管理(slf4j+logback,tomcat)

    千次阅读 2017-07-12 12:01:51
    slf4j只是一个日志抽象层,独立于其他所有的日志类库,需要配合其他的日志类库使用,例如logback,具体的日志级别输出、记录位置、日志格式通过具体的日志类库来实现; slf4j能整合其他的日志类库,使得不同的日志...
  • 目前公司的方案是用mdc来实现一个请求的业务数据埋点记录,但是mdc是map方式,需要手动设置key,而且每次都要手动clear,一是不方便管理,再者如果忘记clear会造成业务埋点数据混乱。所以有了想要把埋点数据字段统一...
  • Java中的日志管理

    2014-12-26 14:44:00
    日志是应用程序运行中不可缺少的一部分,JAVA中有很多已经成熟的方案,尽管记录日志是应用开发中并不可少的功能,在 JDK 的最初版本中并不包含日志记录相关的 API 和实现。相关的 API(java.util.logging 包,JUL)...
  • Spring AOP实现日志管理

    2019-07-06 17:06:01
    Java面对对象语言中要实现日志管理功能时,是比较麻烦的。在此,引入了Spring框架中的AOP思想,AOP的主要作用是可以横向插入可重复代码(日志管理),在面向对象语言中是无法做到的,它是面向对象的一种延伸。而...
  • 原标题:B端零售业:订单轨迹日志功能设计思考编辑导读:B端产品设计千头万绪,在对业务场景非常熟悉的基础上,还要求对技术实现、资源管理有一定的认知。本文作者从B端零售业中订单轨迹这一小功能的设计出发,来...
  • Servlet实现日志管理

    千次阅读 2017-08-27 23:08:19
    //本文主要实现学员日志管理功能,表单以及前端等样式代码省略,主要servlet方法实现的功能的如下: package com.softeem.dao; import java.util.List; public interface BaseDAO { public boolean save(T t);...
  • 一、效果 二、技术应用: JDK1.8+ SpringBoot2.0+ 、@Aspect注解 MySql5.6+ 三、上代码---我的博客只上干货!!...Log实体对象类.java ...import java.io.Serializable;...import java.util.Dat...
  • 这两天做了个系统日志管理功能,现在来总结一下。项目中用到AOP主要是将日志记录从业务逻辑代码中划分出来,减少冗余代码和重复工作步骤...废话有点多 首先创建操作系统日志表,表结构如下: 1.创建操作日志注解...
  • 系统具有教材管理,教材查询,教材供应商管理,系统日志管理,用户管理等功能。引入这套系统可以提高工作人员的工作效率、减少人为出错的机率,将管理人员从繁杂的工作中解脱出来,从根本上实现办公自动化,使学校的...
  • DataBase.javaLogRec.javaMatchedLogRec.javaTransport.javaMatchedTransport.java任务1-2 实现匹配的日志信息的保存和读取功能。LogRecService.java任务1-3 实现匹配的物流信息的保存和读取功能。TransportService....
  • 学生日志管理系统一、功能介绍二、功能代码1、定义学生类2、定义日志类3、定义一个日志系统类三、演示效果图 一、功能介绍 学生日志内容管理系统,日志信息主要包含日志编号,今日学习内容,掌握程度,疑问,日志...
  • Spring-Aop之xml配置实现日志管理

    千次阅读 2018-01-21 11:50:43
    最近项目要做一个日志功能,Spring Aop注解方式我已经实现了,以下是我用xml配置方式来实现。 创建日志注解 package com.wyj.annotation; import java.lang.annotation.Documented; import java.lang....
  • 最近项目要做一个日志功能,我用Spring Aop的注解方式来实现。 创建日志注解 package com.wyj.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java....
  • 最近在做ssh项目时,有一个操作日志功能,我是用xml配置的方式实现的,在这里做一下记录: 创建日志注解 package com.zking.crm.aop; import java.lang.annotation.Documented; import java.lang.annotation....
  • 这套Base Admin是一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理,系统设置、实时日志,实时监控,API加密,以及登录用户修改密码、配置个性菜单等 技术栈 前端:layui java后端:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 819
精华内容 327
关键字:

java日志管理功能实现

java 订阅