- 浏览: 344888 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (169)
- spring (20)
- java (44)
- ibatis (0)
- hibernate (6)
- struts (2)
- javascript (6)
- ajax (1)
- eclipse (4)
- 其他 (10)
- database (17)
- ibatis 分页 (7)
- xml (2)
- pl/sql (6)
- sql (4)
- apache (3)
- oracle (8)
- jdom (1)
- Open ModelSphere (1)
- 线程 (2)
- 多线程 (2)
- 查找文件 (1)
- Comparator (2)
- jxl (2)
- jquery (1)
- Flex (2)
- 非技术 (1)
- mysql (2)
- zxing (1)
- jdbc (1)
- Java内存 (1)
- editplus (1)
- log4j (1)
- sqlserver (2)
- base64 (1)
- Linux (4)
- Shell (2)
- 非技术共享 (1)
- 省市 (1)
- PowerDesigner (3)
- 观察者模式 (2)
- Servlet (1)
- 单点登录 (1)
- IO (1)
- tomcat (1)
- clob (1)
- html (1)
- jsp (2)
- JNative (1)
- WebService (2)
- Highcharts (1)
- Spring Security (1)
- ztree (1)
- Mongodb (3)
- sftp (1)
- SVN (1)
- openSUSE (1)
- Ubuntu (1)
- nio (1)
- springboot (1)
- java8 (1)
最新评论
-
wajjj:
[flash=200,200][url][img][list] ...
【JAVA】读取excel内容(兼容03和07格式) -
xurichusheng:
jjhe369 写道感谢分享!但是发现一个小问题,就是第13, ...
oracle 存储过程分页查询 -
jjhe369:
感谢分享!但是发现一个小问题,就是第13,14行的V_STAR ...
oracle 存储过程分页查询 -
飞天奔月:
为什么不用 Map<String, String> ...
读取.properties的内容,并将内容放入一个Map中 -
xurichusheng:
814687491 写道测试了一下,无法换行!你可以自定义自己 ...
使用google的zxing制作二维码
package com.common.core.interceptor;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.iss.delver.entity.Classes;
import com.iss.delver.entity.Employee;
import com.iss.delver.entity.Tenant;
/**
* Spring 拦截器
*
* @author jhwen
*
*/
public class SessionInterceptor extends HandlerInterceptorAdapter {
private final Logger logger = Logger.getLogger(SessionInterceptor.class);
/**
* 在业务处理器处理请求之前被调用
*/
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
// TODO Auto-generated method stub
/**
* 拿到application上的hm
* 已经在登录的时候绑定 hm
*/
HashMap hm=(HashMap)request.getSession().getServletContext().getAttribute("hm");
//判断是否已经登录
if(hm == null){
//重新绑定
hm = new HashMap();
request.getSession().getServletContext().setAttribute("hm",hm);
// return true;
Employee emp = (Employee)request.getSession().getAttribute("emp");
Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
Classes cls = (Classes)request.getSession().getAttribute("cls");
if(null == emp || null==tenant || null==cls){
response.sendRedirect("index.ftl");
return false;
}
return true;
}else{
return true;
}
}
/**
* 在业务处理器处理完请求后
*/
// @Override
// public void postHandle(HttpServletRequest request, HttpServletResponse response,
// Object handler, ModelAndView model) throws Exception {
// // TODO Auto-generated method stub
//
// logger.debug("===== postHandle ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
//
// /**
// * 在DispatcherServlet完全处理完请求后被调用
// */
// @Override
// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
// throws Exception{
//
// logger.debug("===== afterCompletion ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
}
applicationContext.xml
<!-- 拦截器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
<property name="interceptors">
<bean class="com.iss.delver.common.core.interceptor.SessionInterceptor" />
</property>
</bean>
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.iss.delver.entity.Classes;
import com.iss.delver.entity.Employee;
import com.iss.delver.entity.Tenant;
/**
* Spring 拦截器
*
* @author jhwen
*
*/
public class SessionInterceptor extends HandlerInterceptorAdapter {
private final Logger logger = Logger.getLogger(SessionInterceptor.class);
/**
* 在业务处理器处理请求之前被调用
*/
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
// TODO Auto-generated method stub
/**
* 拿到application上的hm
* 已经在登录的时候绑定 hm
*/
HashMap hm=(HashMap)request.getSession().getServletContext().getAttribute("hm");
//判断是否已经登录
if(hm == null){
//重新绑定
hm = new HashMap();
request.getSession().getServletContext().setAttribute("hm",hm);
// return true;
Employee emp = (Employee)request.getSession().getAttribute("emp");
Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
Classes cls = (Classes)request.getSession().getAttribute("cls");
if(null == emp || null==tenant || null==cls){
response.sendRedirect("index.ftl");
return false;
}
return true;
}else{
return true;
}
}
/**
* 在业务处理器处理完请求后
*/
// @Override
// public void postHandle(HttpServletRequest request, HttpServletResponse response,
// Object handler, ModelAndView model) throws Exception {
// // TODO Auto-generated method stub
//
// logger.debug("===== postHandle ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
//
// /**
// * 在DispatcherServlet完全处理完请求后被调用
// */
// @Override
// public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
// throws Exception{
//
// logger.debug("===== afterCompletion ======");
//
// //拿到绑定在 session 上的对象
// Employee emp = (Employee)request.getSession().getAttribute("emp");
//
// Tenant tenant = (Tenant)request.getSession().getAttribute("tt");
//
// Classes cls = (Classes)request.getSession().getAttribute("cls");
//
// if(null == emp || null==tenant || null==cls){
// //如果未登录,则跳转到登录页面
// response.sendRedirect("index.ftl");
// }
// }
}
applicationContext.xml
<!-- 拦截器 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
<property name="interceptors">
<bean class="com.iss.delver.common.core.interceptor.SessionInterceptor" />
</property>
</bean>
发表评论
-
spring mvc 定时任务,避免同时执行两次
2019-03-09 18:14 3300spring版本:3.1.0 或以 ... -
Spring jdbcTemplate示例
2015-07-08 15:26 1188Spring jdbcTemplate示例 1. ... -
jsp页面显示二进制图片
2014-11-05 15:58 40801. DAO层 import java.sql.C ... -
Spring工具类,提供取得Spring配置文件中定义的Bean的方法
2014-05-15 19:02 1560在 java EE 工程中,经常会用到定 ... -
使用Spring的JdbcTemplate处理Clob
2013-11-01 11:04 43091. 数据库表 req_seq CREATE TA ... -
oracle 存储过程分页查询
2013-10-24 11:09 1972oracle 10gR2 Spring JDBCTe ... -
Spring MVC 处理请求流程
2011-06-01 15:03 1320Spring MVC 处理请求流程: ... -
在spring中配置ibatis 04_dao类
2011-05-31 14:15 1666BaseDAOImpl<T>.java p ... -
在spring中配置ibatis 03_xml配置
2011-05-31 14:11 1034UserEntity.xml <?xml ver ... -
在spring中配置ibatis 02_xml配置
2011-05-31 14:09 9801、applicationContext-service.xm ... -
在spring中配置ibatis 01_xml配置
2011-05-31 14:01 10731、applicationContext.xml &l ... -
jdbc.properties
2011-05-31 11:37 3800### mysql ### driverClassName ... -
Spring 配置文件--- 事务处理
2011-05-31 11:28 1369事务的处理在service层。 &l ... -
Spring 配置文件--- 数据源配置(c3p0)
2011-05-31 11:24 1242<!-- 数据库连接配置文件 --> & ... -
Spring 配置文件--- 数据源配置(dbcp)
2011-05-31 11:23 1206applicationContext.xml & ... -
spring 定时任务
2011-05-20 14:54 1145import java.util.TimerTask; ... -
另一个 spring 拦截器
2010-07-13 13:48 1574import javax.servlet.http.HttpS ... -
Spring RedirectView 传值乱码解决
2010-05-04 17:40 3156使用的是spring的注解 public ModelAnd ... -
Spring 拦截器
2010-04-27 09:02 58981、在做项目的时候,遇到了一个Spring拦截器的问题。 项目 ...
相关推荐
首先,我们创建一个Spring拦截器需要实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类。以下是一个简单的拦截器示例: ```java import org.springframework.web.servlet.HandlerInterceptor; ...
而Spring拦截器则是实现AOP的一种方式,它类似于Java的Servlet过滤器,可以在方法调用前后执行自定义的操作。 AOP拦截器在Spring中主要通过`HandlerInterceptor`接口或者`@AspectJ`注解来实现。下面我们将详细探讨...
在深入研究Flex-Spring拦截器时,理解Spring AOP的核心概念和AMF的工作原理是至关重要的。通过这样的集成,开发者可以在保持Flex客户端的灵活性和交互性的同时,利用Spring的强大功能来处理复杂的业务逻辑和系统管理...
Spring 拦截器是 Spring 框架中一个非常重要的组件,主要用于处理请求和响应,实现业务逻辑之前和之后的预处理和后处理。它为开发者提供了在 MVC 模式下实现统一处理机制的机会,比如权限验证、日志记录、性能监控等...
在Spring Boot应用中,登录拦截器是一个至关重要的组件,它用于保护特定的Web资源,确保只有经过身份验证的用户才能访问。Spring Boot结合了Spring MVC框架,提供了方便的方式来实现这样的拦截器。本篇文章将深入...
每个拦截器都可以决定是否允许请求继续传递到下一个拦截器或控制器。 2. **创建自定义拦截器**:首先,我们需要创建一个实现了`HandlerInterceptor`接口的类。这个接口中有三个方法: - `preHandle...
本文将深入探讨Spring拦截器的一个简单实例,通过源码分析和实际操作,帮助你理解其工作原理。 首先,我们需要了解Spring MVC的处理流程。当一个HTTP请求到达服务器时,Spring MVC会按照配置的DispatcherServlet...
在`intercept`方法中,我们实现了类似Spring拦截器的功能,调用`preHandle`和`postHandle`方法,并根据`preHandle`的结果决定是否执行目标方法。 最后,`afterCompletion`方法的调用通常需要手动管理,因为它涉及到...
创建一个自定义的JPA拦截器,比如`ShardingInterceptor`,这个拦截器将在每个JPA的查询或保存操作之前/之后执行。在拦截器中,我们需要根据业务规则(例如:用户ID、订单号等)计算出目标库和表的索引,然后修改SQL...
下面是一个简单的自定义拦截器示例: ```java import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet....
1. **创建拦截器类**:首先,我们需要创建一个类,实现HandlerInterceptor接口或继承HandlerInterceptorAdapter,然后在这些方法中编写我们需要的逻辑,比如检查JSON数据的格式、权限验证等。 2. **注册拦截器**:...
在提供的压缩包文件"wbInter"中,可能包含了一个示例或模板,用于演示如何在CXF3.0和Spring3.2环境中创建和配置自定义拦截器。通过学习和理解这些文件,你可以更深入地了解如何在实际项目中应用这一技术。 总之,...
在Spring AOP中,我们可以定义一个`@Aspect`类,这个类包含若干个`@Before`,`@After`,`@Around`等注解的方法,这些方法会在相应的切点(pointcut)执行前、后或周围执行。在数据脱敏的场景下,我们可能需要在响应...
为了实现登录拦截,我们需要创建一个拦截器类,例如`LoginInterceptor`,并实现`HandlerInterceptor`接口: ```java import org.springframework.stereotype.Component; import javax.servlet....
在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...
在Spring MVC中,拦截器接口由`HandlerInterceptor`定义,而`HandlerInterceptorAdapter`类则提供了一个适配器模式的默认实现,简化了拦截器的开发过程。`HandlerInterceptor`接口包含以下三个核心方法: 1. **`...
在SpringBoot框架中,拦截器是一个非常重要的组件,它能够在请求到达控制器(Controller)之前或者之后对请求进行拦截,以完成一些预处理或后处理操作。拦截器通常用于权限检查、日志记录、性能监控等场景。 拦截器...
初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器...Spring Cloud OpenFeign拦截器发生在两个不同的服务之间,在服务消费端发送请求远程调用服务提供方时进行拦截处理。
在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...