<?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:p="http://www.springframework.org/schema/p" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    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/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
       http://www.springframework.org/schema/aop   
       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">   
       
      
              <!-- 启动对@AspectJ注解的支持 -->  
        <aop:aspectj-autoproxy/>
        
       
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
        <property name="mappings">  
            <props>  
            <!-- MultiActionController中的两个方法add和test   
                 key必须与方法名一样  
                比如请求路径http://localhost:8080/SpringMVC01/test.do,类中必须有个方法名为test  
            -->  
                <prop key="*myAction.do">multyAction</prop>  
                <prop key="goAdd.do">goAdd</prop>  
            </props>  
        </property>  
    </bean>  
      <mvc:interceptors>  
    <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->  
    <!-- <bean class="cn.edu.zttc.controllerUser.MyHandlerInterceptor"/>   -->
    <mvc:interceptor>  
        <mvc:mapping path="/*"/>  
       <!--  <ref bean="MyHandlerInterceptor"/> -->
        <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->  
         <bean class="cn.edu.zttc.controllerUser.MyHandlerInterceptor"/>   
    </mvc:interceptor>  
</mvc:interceptors> 
      
    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">  
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
        <property name="prefix" value="/WEB-INF/jsp/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
      
    <bean id="goAdd" class="org.springframework.web.servlet.mvc.ParameterizableViewController">  
        <property name="viewName" value="add"></property>  
    </bean>  
      
    <!-- 根据请求参数决定方法 empMutilAction.do?action=add -->  
    <bean id="multyAction" class="cn.edu.zttc.controllerUser.UserController">  
        <property name="methodNameResolver">  
            <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">  
            <!--  指定参数名为action   --> 
                <property name="paramName" value="action" />  
            </bean>  
        </property>
        <!-- <property name="person">
        <ref bean="personServiceBean"/>
        </property>  -->
        <!-- <property name="methodNameResolver">  
            <bean class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />  
        </property>   -->
    </bean>  
    <bean id="MyHandlerInterceptor" class="cn.edu.zttc.controllerUser.MyHandlerInterceptor"></bean>
    
    
     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
    <!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->  
    <property name="defaultErrorView" value="error"></property>  
   <!--定义异常处理页面用来获取异常信息的变量名,默认名value为exception-->
    <property name="exceptionAttribute" value="ex"></property>  
    <!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->  
    <property name="exceptionMappings">  
        <props>  
           <prop key="java.lang.NullPointerException">nullPoint</prop>   
            <prop key="java.sql.SQLException">error</prop>  
           <!--  <prop key="java.lang.Exception">add</prop>  -->
        </props>  
    </property>  
</bean>
     <bean id="personServiceBean" class="com.bird.service.impl.PersonServiceBean"/>  
    <bean id="myInterceptor" class="com.bird.service.MyInterceptor"/>

</beans>

============================================================

package cn.edu.zttc.controllerUser;

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

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class MyHandlerInterceptor extends HandlerInterceptorAdapter  {

@Override  
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {  
        System.out.println("===========HandlerInterceptor1 preHandle");  
        return true;  
    }  
    @Override  
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {  
        System.out.println("===========HandlerInterceptor1 postHandle");  
    }  
    @Override  
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {  
        System.out.println("===========HandlerInterceptor1 afterCompletion");  
    }  
}

=========================================================================================================

package cn.edu.zttc.aop;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class BeforeAdviceTest {
public static final String EDP = "cn.edu.zttc.controllerUser.UserController.users(..))";
    // 匹配 com.wicresoft.app.service.impl 包下所有类的所有方法作为切入点  
    @Before(EDP)  
    public void authorith(){  
        System.out.println("模拟进行权限检查。");  
    }
}

=================================================package com.bird.service;  
  
import org.aspectj.lang.ProceedingJoinPoint;  
import org.aspectj.lang.annotation.After;  
import org.aspectj.lang.annotation.AfterReturning;  
import org.aspectj.lang.annotation.AfterThrowing;  
import org.aspectj.lang.annotation.Around;  
import org.aspectj.lang.annotation.Aspect;  
import org.aspectj.lang.annotation.Before;  
import org.aspectj.lang.annotation.Pointcut;  
  
/** 
 * 切面 
 * @author Bird 
 * 
 */  
@Aspect  
public class MyInterceptor {  
    @Pointcut("execution(* com.bird.service.impl.PersonServiceBean.*(..))")  
    private void anyMethod(){}//定义一个切入点  
      
    @Before("anyMethod() && args(name)")  
    public void doAccessCheck(String name){  
        System.out.println(name);  
        System.out.println("前置通知");  
    }  
      
    @AfterReturning("anyMethod()")  
    public void doAfter(){  
        System.out.println("后置通知");  
    }  
      
    @After("anyMethod()")  
    public void after(){  
        System.out.println("最终通知");  
    }  
      
    @AfterThrowing("anyMethod()")  
    public void doAfterThrow(){  
        System.out.println("例外通知");  
    }  
      
    @Around("anyMethod()")  
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{  
        System.out.println("进入环绕通知");  
        Object object = pjp.proceed();//执行该方法  
        System.out.println("退出方法");  
        return object;  
    }  
}

============================================

package com.bird.service;

public interface PersonServer {
public void save(String name);  
   public void update(String name, Integer id);  
   public String getPersonName(Integer id);  
}

============================================================

<?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: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">  
          
        <aop:aspectj-autoproxy/>  
    <bean id="personServiceBean" class="com.bird.service.impl.PersonServiceBean"/>  
    <bean id="myInterceptor" class="com.bird.service.MyInterceptor"/>  
     
</beans>

=============================

package cn.edu.zttc.controllerUser;

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

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.servlet.support.RequestContextUtils;

import com.bird.service.PersonServer;
import com.bird.service.impl.PersonServiceBean;

public class UserController extends MultiActionController {

//PersonServer  person;
// public PersonServer getPerson() {
// return person;
// }
// public void setPerson(PersonServer person) {
// this.person = person;
// }
public void users(HttpServletRequest req,HttpServletResponse res) {
// person.save(null);
WebApplicationContext  webApplicationContext =RequestContextUtils.getWebApplicationContext(req);//get child context
ServletContext servletContext=req.getSession().getServletContext();
Object o =req.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);

//System.out.println(o.toString());
//WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
WebApplicationContext webApplicationContext_1 = (WebApplicationContext)servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
WebApplicationContextUtils.getWebApplicationContext(servletContext);//get parent web context
PersonServiceBean bean =(PersonServiceBean)webApplicationContext.getBean("personServiceBean");
bean.save(null);
System.out.println("--==-=-=-=-=-=-=-=");

}
public void add(HttpServletRequest req,HttpServletResponse res) {
System.out.println("add");

}
public void savee(HttpServletRequest req,HttpServletResponse res) {

String aa=null;
aa.split("1");
int a =1/0;
System.out.println("add");

}
}

wwwww.wwwwww.wwwww相关推荐

  1. Pictures of Ascii Art

    简述 指尖上的艺术 - 通过键盘上韵律般的敲敲打打,一幅幅美轮美奂的艺术作品便跃然于屏. 这样的画作,包含了无穷的创意,糅合了现代计算机科技与传统绘画艺术,难道还有比这更令人陶醉的美妙事物吗? | 版 ...

  2. 图片转化为字符画——get!小技巧【美人图,动物照,有趣注释图案】

    目录 一.想法来源 二.操作方法 1.魔性图注释代码样例 2.有趣的代码注释样例 3.巧用网站,上传图片呈现字符图 4.巧用代码注释工具 总结 前言 学习编程后,想用代码运行出图片上的形状.该怎么办? ...

  3. walle 2.0 瓦力部署详细流程

    walle介绍 walle 让用户代码发布终于可以不只能选择 jenkins!支持各种web代码发布,php.java.python.go等代码的发布.回滚可以通过web来一键完成. walle一个可 ...

  4. Java数据类型及拓展面试题

    Java数据类型及拓展 数据类型 基本类型: 整数类型中short占2字节,long占8字节(值后加L区分). 浮点类型中float占4字节(值后加F区分),double占8字节. 字符类型char占 ...

  5. 代码中超魔性图片注释

    代码中超魔性图片注释 马儿 _(\_/) ,((((^`\(((( (6 \ ,((((( , \,,,_ ,((((( /"._ ,`,((((\\ ,... ,(((( / `-.-') ...

  6. Maven私库使用常见问题:本地安装三方Jar文件

    这篇文章通过Oracle的ojdbc的Jar依赖的对应方法来说明Maven私库中三方Jar文件的一种对应方法. 现象 以oracle的ojdbc的jar为例进行说明 [ERROR] Failed to ...

  7. SZTU深圳技术大学教务系统小爱课程表导入——强智科技13369

    作为个人来讲非常值得纪念的,具有一定流传度的,较为正规的小项目--小爱课程表导入,于2020/9/9正式完成.审核通过时间暂未明确,测试已经完美. 2020/9/16修复已知的BUG 2020/9/2 ...

  8. [Greenfoot中文教程] 自序 – Greenfoot WWWWW

    自序 – Greenfoot WWWW 1.What--什么是Greenfoot Greenfoot是一款小巧的Java 2D游戏开发引擎(或者说框架更合适),同时也是一款简单以游戏开发为特色的较为标 ...

  9. Python中制表符\t的使用

    以前一直以为制表符只是输出八个空格,实际上是补齐8个字符位置的倍数的. 如果字符只有一到七个,则补齐缺的位数,比如输出两个字符再输出制表符,此时制表符输出6个空格.如果输出8个字符,此时制表符输出8个 ...

最新文章

  1. button按钮样式_一篇文章带你了解CSS3按钮知识
  2. BeagleBone Black教程之BeagleBone Black设备的连接
  3. python 去除字符串里所有标点符号
  4. 台式电脑已连接但无法上网_电脑无法上网?五步帮你解决!
  5. Linux重置Mysql密码_解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost
  6. del退役了/del 滚回来了
  7. “芯生力量,智能持久”出门问问全新发布TicWatch Pro 3
  8. sql server删除主键约束所想到的
  9. 函数式编程(一) 认识“编程范式”和“函数”
  10. 网管利器:七大免费网络工具
  11. Vue 监听浏览器页面窗口切换, 窗口最小化
  12. java语言飞机大战代码_飞机大战JAVA代码
  13. 好看兼好用的编程专用字体
  14. 白光led 计算机模拟,白光LED在TracePro中的建模及仿真
  15. 黑马微信小程序项目实战
  16. 固态激光雷达:扫地机器人的旋转激光雷达的三角测距示意原理与分析
  17. 缓存设置(失效时间)
  18. 乒乓球十一分制比赛规则_乒乓球比赛规则、技术及知识
  19. 学习自旋电子学的笔记04:模拟自旋波在弯曲磁畴壁中传播
  20. biabiamiamia百度音乐网批量歌曲下载工具

热门文章

  1. react生命周期总结
  2. android应用点全屏按钮无法全屏,安卓手机软件显示不全屏的解决办法
  3. 南京理工计算机专业复试科目,南京理工大学计算机考研复试全攻略
  4. 「云服务」腾讯云服务器配置
  5. 060201面积-定积分在几何学上的应用-定积分的应用
  6. 菜鸡的折腾路程,情人节啊顺便记录一下啦,立个flag
  7. java 对英文句子进行 分词、去除停用词、提取词干
  8. 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页
  9. 智慧医疗健康领域数字孪生应用框架
  10. 【案例教程】地球科学数据(ERA5、雪深、积雪覆盖、海温、植被指数、土地利用)处理实践