
【SSH框架进阶】
牛迁迁
货车帮科技有限公司,高级开发工程师
展开
-
【Struts2进阶】Struts2拦截器实现基于Url的权限管理
Struts2的拦截器只能拦截Action,拦截器是AOP的一种实现方式,可以使我们的系统架构更松散(耦合度低),可以插拔,容易互换,代码不改变的情况下很容易满足客户需求。项目的权限管理模块就使用到了Struts2的拦截器,原理是这样的,我们来自定义一个拦截器,拦截所有的Action请求,对用户的登录状态和权限信息进行判断。如果用户为登录状态且有足够的权限,则继续访问;若未登录,则为其跳转到登录页面原创 2016-03-16 13:17:07 · 4104 阅读 · 6 评论 -
【Struts2进阶】Struts2深度解析ModelDriven原理
Strus2在获取表单数据的时候有两种方式:属性驱动模式和模型驱动模式,使用属性驱动模式,需要在Action中声明这些属性,并提供属性的getter和setter方法,这样从前台传过来的参数就会自动set到你声明的属性中。但这种方式不好的地方在于,如果实体属性很多的话,就需要声明一大堆属性以及get(),set()方法。不过不要紧,Struts2可以采用类似于Struts1中的ActionForm方原创 2016-03-10 21:05:06 · 3266 阅读 · 7 评论 -
【Struts2进阶】Struts2的Action访问Servlet API 的 三种方式
Struts2 相比 Struts1 而言,Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,使得 Action 可以脱离 Web 容器进行测试;另外因为Action是一个普通的Java类,而不是一个Servlet类,完全脱离于Web容器,所以我们就能够更加方便地对Control层进行合理的层次设计,从而抽象出许多公共的逻辑,并将这些逻辑脱离出A原创 2016-03-10 21:44:34 · 880 阅读 · 4 评论 -
【Struts2进阶】Struts2 多方法调用的两种方式
Action的创建一般可分为两种方式,第一是每个方法创建一个Action类,第二是一个Action中包含多个方法;在实际的开发中,一般不会采取第一种方案,因为项目中有多少方法,就需要建立多少的Action类,类多且配置量巨大,所以我们经常采用一个Action对应多个方法的方式。那么问题来了,Struts2的Action中包含多个方法时如何调用?同样有两种方式可以选择,1. 方法的动态调用 2.通过配原创 2016-03-10 23:00:26 · 1558 阅读 · 7 评论 -
【Spring进阶】spring对AOP的支持-注解方式和配置方式
上篇博客中讲解了一些AOP的基础概念和Spring AOP的基础知识点。现在来具体实践一下,一探究竟。在spring中,常用的AOP实现方式有两种:一种是基于xml配置文件方式的实现,另一种是基于注解的实现。接下来以日志服务类为例,来看看这两种方式的具体实现。业务类准备用户服务接口package com.tgb.spring;/*** @ClassName: UserManager* @Des原创 2016-04-30 15:54:25 · 2866 阅读 · 4 评论 -
【Spring进阶】Spring重写CharacterEncodingFilter完全解决编码问题
编码问题是在编程过程中经常遇到的问题之一,如果早期不指定统一的编码格式,开发过程中会遇到各种各样的乱码问题。还好spring为咱们提供了一个编码过滤器,可以帮助咱们解决大部分的乱码问题,本以为配置上它就可以高枕无忧,但是还是出现了问题。编码问题浮现// 获取前台传递过来的查询条件 String conditions = request.getParameter("extra_search");从r原创 2016-04-30 16:04:01 · 8937 阅读 · 3 评论 -
基于URL的权限验证流程总结
之前写过一篇博客:拦截器实现基于Url的权限管理,文章中讲解了怎么用拦截器实现url权限认证,这仅仅是权限管理的一部分。今天这篇博客就来说说一个项目完整的权限认证流程。1、 准备权限数据服务器启动时,通过InitListener监听器,将数据库中的权限信息查询出来,并放到ServletContext中。其中权限信息分两类:顶层菜单(系统管理)和其他权限信息url。ServletContext中放一些原创 2016-04-30 21:12:08 · 6699 阅读 · 5 评论 -
【Spring进阶】AOP主要概念
AOP主要概念在面向对象编程的过程中,我门可能会遇到这样的情况: 1. 系统临近上线,测试过程中发现程序存在性能问题,于是经理下令将所有方法加上日志,打印出每个方法的执行时间,严格排查 2. 经理想要给一些核心模块添加操作日志,以便统计用户的行为,比如下单方法被调用多少次,支付方法调用多少次。 3. 当然还有事务四部曲,开,关,提交,回滚。上述这些问题解决起来都挺简单的,就是手原创 2016-04-23 21:37:30 · 824 阅读 · 6 评论 -
彻底解决JS处理Long类型精度丢失问题(二)
当你的序列化方式采用的FastJson时,该如何处理这种类型转换问题呢?一模一样的套路…SpringMVC 使用FastJson序列化方式1.增加类型转换类:public class FastJsonConfigExt extends FastJsonConfig { public FastJsonConfigExt(){ super(); Seri...原创 2019-01-20 17:11:23 · 4512 阅读 · 0 评论