spring mvc

spring mvc 拦截器:

dispatcherServlet-Spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<context:property-placeholder location="${property.path}"/>

<!-- Scans within the base package of the application for @Components to configure as beans -->
<!-- @Controller, @Service, @Configuration, etc. -->
<context:component-scan base-package="com.cn.net.web"/>

<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven/>

<!-- Resources or statics mapping -->
<mvc:default-servlet-handler/>

<mvc:interceptors> 
    <mvc:interceptor>

<!-- 拦截="/user/login请求 -->
<mvc:mapping path="/user/login" />
<bean class="com.cn.net.web.test.MyInteceptor" />
</mvc:interceptor>  
     </mvc:interceptors>  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="prefix" value="/WEB-INF/views/" /> 
        <property name="suffix" value=".jsp" /> 
    </bean> 
</beans>

 

MyInteceptor 拦截类

 

/*
package com.cn.net.web.test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.cn.net.model.User;

/**
 * <Use one sentence to describe the function> <Detailed function description>
 *
 * @author name
 * @version [version, 2014-3-18]
 * @see [related class/method]
 * @since [product/module version]
 */


public class MyInteceptor implements HandlerInterceptor {

 /**
  * override methods
  *
  * @param arg0
  * @param arg1
  * @param arg2
  * @param arg3
  * @throws Exception
  */
 @Override
 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
   throws Exception {

  System.out.println("afterCompletion_________________________");
  // TODO Auto-generated method stub

 }

 /**
  * override methods
  *
  * @param arg0
  * @param arg1
  * @param arg2
  * @param arg3
  * @throws Exception
  */
 @Override
 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
   throws Exception {
  System.out.println("postHandle_________________________");
  // TODO Auto-generated method stub

 }

 /**
  * override methods
  *
  * @param arg0
  * @param arg1
  * @param arg2
  * @return
  * @throws Exception
  */
 @Override
 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
  System.out.println("preHandle_________________________");
  User user = new User();
  String userName = arg0.getParameter("userName");
  System.out.println("userName:" + userName);
  String password = arg0.getParameter("password");
  if (!userName.equals("root") || !password.equals("root")) {
   arg1.sendRedirect("error");
  } else {
   user.setPassWord(password);
   user.setUserName(userName);
   arg0.getSession().setAttribute("user", user);
  }
  return true;
 }
}
--------------------------------------------------------------------------------------------------------------------------------

spring aop 日志与定时器

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 <!-- 视图 -->

 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <!-- 使用标签库,暂时可不用 -->
  <!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> -->
  <property name="prefix" value="/WEB-INF/" />
  <property name="suffix" value=".jsp" />
 </bean>

 <!-- 映射 -->
 <bean id="urlMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="login.do">login</prop>
   </props>
  </property>
 </bean>

 <!--login action -->
 <bean id="login" class="com.web.LoginController">
  <property name="loginService">
   <ref local="loginService" />
  </property>
 </bean>

 <bean id="logService" class="com.service.impl.LogServiceImpl"></bean>
 <bean id="loginService" class="com.service.impl.LoginServiceImpl"></bean>
 <aop:config>
  <!-- 切入点 -->
  <aop:pointcut expression="execution(* com.service.impl.Login*.*(..))"
   id="myPointcut" />
  <!-- 切面: 将哪个对象中的哪个方法,织入到哪个切入点 -->
  <aop:aspect id="dd" ref="logService">
   <aop:before method="log" pointcut-ref="myPointcut" />
   <aop:after method="logArg" pointcut-ref="myPointcut" />
   <aop:after-returning method="logArgAndReturn"
    returning="returnObj" pointcut-ref="myPointcut" />
  </aop:aspect>
 </aop:config>

 

 

 

 

 

 

 

 

 

 

 <!-- /spring Aop -->

 <!-- spring timer -->
 <bean id="spideSiteTime"
  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <ref bean="cronSpideSiteTrigger" />
  </property>
 </bean>
 <bean id="spideSiteBean" class="com.web.SpideSiteTimerTask"></bean>
 <bean id="scheduledSpideJobDetail"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject">
   <ref bean="spideSiteBean" />
  </property>
  <property name="targetMethod">
   <value>run</value>
  </property>
 </bean>

 <bean id="cronSpideSiteTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail">
   <ref bean="scheduledSpideJobDetail" />
  </property>
  <property name="cronExpression">
   <value>0 * 16 * * ?" </value>
  </property>
 </bean>
 <!-- /spring timer -->
</beans> 
-----------------------------------------------------------------------------------

spring aop

public interface ILoginService {

public boolean login(String userName, String password, List list);

}

 

public interface ILogService {

public void log();

public void logArg(JoinPoint point);

public void logArgAndReturn(JoinPoint point, Object returnObj);

}

public class LoginServiceImpl implements ILoginService {

 

public boolean login(String userName, String password, List list) {

StringBuffer sb = new StringBuffer();

sb.append("Target:").append("login:").append(userName).append(",").append(password);

System.out.println(sb.toString());

if (userName.equals("root") && password.equals("root")) {

return true;

} else {

return false;

}

}

}

 

 

public class LogServiceImpl implements ILogService {

public void log() {

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " *******Log*********");

}

 

/**

 * 

 * <p>

 * 功能实现描述:有参无返回值的方法

 * </p>

 * 

 * @see com.bruceyang.login.service.ILogService#logArg(org.aspectj.lang.JoinPoint)

 * @author: bruce.yang

 * @date: Created on 2013-8-13 下午1:43:43

 */

public void logArg(JoinPoint point) {

StringBuffer sb = new StringBuffer();

// 获取连接点所在的目标对象

Object obj = point.getTarget();

// 获取连接点的方法签名对象

String method = point.getSignature().getName();

// 获取连接点方法运行时的入参列表

Object[] args = point.getArgs();

sb.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())).append(" ");

System.out.println("obj.toString():" + obj.toString());

sb.append(obj.toString().substring(0, obj.toString().indexOf('@')));

sb.append(".").append(method).append(" ");

sb.append("Args:[");

if (args != null) {

for (int i = 0; i < args.length; i++) {

Object o = args[i];

sb.append(o);

if (i < args.length - 1) {

sb.append(",");

}

}

}

sb.append("]");

System.out.println(sb.toString());

}

 

/**

 * 

 * <p>

 * 功能实现描述:有参并有返回值的方法

 * </p>

 * 

 * @see com.bruceyang.login.service.ILogService#logArgAndReturn(org.aspectj.lang.JoinPoint,

 *      java.lang.Object)

 * @author: bruce.yang

 * @date: Created on 2013-8-13 下午1:43:17

 */

public void logArgAndReturn(JoinPoint point, Object returnObj) {

StringBuffer sb = new StringBuffer();

// 获取连接点所在的目标对象

Object obj = point.getTarget();

// 获取连接点的方法签名对象

String method = point.getSignature().getName();

// 获取连接点方法运行时的入参列表

Object[] args = point.getArgs();

sb.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())).append(" ");

sb.append(obj.toString().substring(0, obj.toString().indexOf('@')));

sb.append(".").append(method).append(" ");

sb.append("Args:[");

if (args != null) {

for (int i = 0; i < args.length; i++) {

Object o = args[i];

sb.append(o);

if (i < args.length - 1) {

sb.append(",");

}

}

}

sb.append("]").append(" ");

sb.append("Ret:[").append(returnObj).append("]");

System.out.println(sb.toString());

}

}

-------------------------------------------------------------------------

spring  定时器

/*
 * filename:  SpideSiteTimerTask.java
 * copyright:  CMRI. Copyright YYYY-YYYY,  All rights reserved
 * description:  <you can write your description>
 * modify user:  yangshuai
 * modify date:  2014-3-11
 * track number:  <you can write your track number>
 * modify number:  <you can modify your number>
 * modify content:  <you can write your modified content>
 */
package com.web;

import java.util.TimerTask;

/**
 * <Use one sentence to describe the function> <Detailed function description>
 *
 * @author name
 * @version [version, 2014-3-11]
 * @see [related class/method]
 * @since [product/module version]
 */
public class SpideSiteTimerTask extends TimerTask {

 /**
  * override methods
  */
 @Override
 public void run() {
  // TODO Auto-generated method stub
  System.out.println("------------------------");
 }

}

<!--EndFragment-->

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值