wwwww.wwwwww.wwwww
<?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相关推荐
- Pictures of Ascii Art
简述 指尖上的艺术 - 通过键盘上韵律般的敲敲打打,一幅幅美轮美奂的艺术作品便跃然于屏. 这样的画作,包含了无穷的创意,糅合了现代计算机科技与传统绘画艺术,难道还有比这更令人陶醉的美妙事物吗? | 版 ...
- 图片转化为字符画——get!小技巧【美人图,动物照,有趣注释图案】
目录 一.想法来源 二.操作方法 1.魔性图注释代码样例 2.有趣的代码注释样例 3.巧用网站,上传图片呈现字符图 4.巧用代码注释工具 总结 前言 学习编程后,想用代码运行出图片上的形状.该怎么办? ...
- walle 2.0 瓦力部署详细流程
walle介绍 walle 让用户代码发布终于可以不只能选择 jenkins!支持各种web代码发布,php.java.python.go等代码的发布.回滚可以通过web来一键完成. walle一个可 ...
- Java数据类型及拓展面试题
Java数据类型及拓展 数据类型 基本类型: 整数类型中short占2字节,long占8字节(值后加L区分). 浮点类型中float占4字节(值后加F区分),double占8字节. 字符类型char占 ...
- 代码中超魔性图片注释
代码中超魔性图片注释 马儿 _(\_/) ,((((^`\(((( (6 \ ,((((( , \,,,_ ,((((( /"._ ,`,((((\\ ,... ,(((( / `-.-') ...
- Maven私库使用常见问题:本地安装三方Jar文件
这篇文章通过Oracle的ojdbc的Jar依赖的对应方法来说明Maven私库中三方Jar文件的一种对应方法. 现象 以oracle的ojdbc的jar为例进行说明 [ERROR] Failed to ...
- SZTU深圳技术大学教务系统小爱课程表导入——强智科技13369
作为个人来讲非常值得纪念的,具有一定流传度的,较为正规的小项目--小爱课程表导入,于2020/9/9正式完成.审核通过时间暂未明确,测试已经完美. 2020/9/16修复已知的BUG 2020/9/2 ...
- [Greenfoot中文教程] 自序 – Greenfoot WWWWW
自序 – Greenfoot WWWW 1.What--什么是Greenfoot Greenfoot是一款小巧的Java 2D游戏开发引擎(或者说框架更合适),同时也是一款简单以游戏开发为特色的较为标 ...
- Python中制表符\t的使用
以前一直以为制表符只是输出八个空格,实际上是补齐8个字符位置的倍数的. 如果字符只有一到七个,则补齐缺的位数,比如输出两个字符再输出制表符,此时制表符输出6个空格.如果输出8个字符,此时制表符输出8个 ...
最新文章
- button按钮样式_一篇文章带你了解CSS3按钮知识
- BeagleBone Black教程之BeagleBone Black设备的连接
- python 去除字符串里所有标点符号
- 台式电脑已连接但无法上网_电脑无法上网?五步帮你解决!
- Linux重置Mysql密码_解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost
- del退役了/del 滚回来了
- “芯生力量,智能持久”出门问问全新发布TicWatch Pro 3
- sql server删除主键约束所想到的
- 函数式编程(一) 认识“编程范式”和“函数”
- 网管利器:七大免费网络工具
- Vue 监听浏览器页面窗口切换, 窗口最小化
- java语言飞机大战代码_飞机大战JAVA代码
- 好看兼好用的编程专用字体
- 白光led 计算机模拟,白光LED在TracePro中的建模及仿真
- 黑马微信小程序项目实战
- 固态激光雷达:扫地机器人的旋转激光雷达的三角测距示意原理与分析
- 缓存设置(失效时间)
- 乒乓球十一分制比赛规则_乒乓球比赛规则、技术及知识
- 学习自旋电子学的笔记04:模拟自旋波在弯曲磁畴壁中传播
- biabiamiamia百度音乐网批量歌曲下载工具
热门文章
- react生命周期总结
- android应用点全屏按钮无法全屏,安卓手机软件显示不全屏的解决办法
- 南京理工计算机专业复试科目,南京理工大学计算机考研复试全攻略
- 「云服务」腾讯云服务器配置
- 060201面积-定积分在几何学上的应用-定积分的应用
- 菜鸡的折腾路程,情人节啊顺便记录一下啦,立个flag
- java 对英文句子进行 分词、去除停用词、提取词干
- 学习JSP——在虚拟机中建立一个JSP网页,通过Tomcat服务器发布,并通过虚拟机的宿主机浏览器访问虚拟机上所发布的JSP网页
- 智慧医疗健康领域数字孪生应用框架
- 【案例教程】地球科学数据(ERA5、雪深、积雪覆盖、海温、植被指数、土地利用)处理实践