设为首页 加入收藏

TOP

通向架构师的道路(第二十天)万能框架spring(二)maven结合spring与ibatis(六)
2018-03-14 09:00:25 】 浏览:845
Tags:通向 架构 师的 道路 第二十 万能 框架 spring maven 结合 ibatis
er-mapping> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/servlet/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>

有了这个filter我们就不用在我们的web工程中每一个action、每 个jsp里进行“用户是否登录”的判断了,它会自动根据配置除去“exclude”中的相关web resource,全部走这个“是否登录”的判断。

注意此处这个exclude是笔者自己写的,为什么要exclude?

如果你不exclude,试想一个用户在login.jsp中填入相关的登录信息后点一下login按钮跳转到了login.do,而这两个web resource由于没有被“排除”出“需要登录校验”,因此每次你一调用login.jsp, login.do这个filter就都会强制要求你再跳转到login.jsp,那么我们一个用户从login.jsp登录完后再跳回login.jsp再跳回,再跳回,如此重复,进入死循环。

4.2 增加了一个自动记录异常的日志功能

在我们的applicationContext.xml文件中

<bean

    id="methodLoggerAdvisor"

    class="org.sky.ssi.util.LoggerAdvice" >

</bean>

<aop:config>

    <aop:aspect

        id="originalBeanAspect"

        ref="methodLoggerAdvisor" >

        <aop:pointcut

            id="loggerPointCut"

            expression="execution(* org.sky.ssi.service.impl.*.*(..))" />

        <aop:around

            method="aroundAdvice"

            pointcut-ref="loggerPointCut" />

    </aop:aspect>

</aop:config>

这样,我们的dao层、service层、有错就只管往外throw,框架一方面在接到相关的exception会进行数据库事务的自动回滚外,还会自动把service层抛出的exception记录在log文件中。

五、测试我们的工程

确认我们的StudentServiceImpl中删除学生的delStudent方法内容如下:

public void delStudent(String[] stdNo) throws Exception {

  for (String s : stdNo) {

         Map<String, Object> paraMap = new HashMap<String, Object>();

         paraMap.put("stdNo", s);

         studentDAO.delStudent(paraMap);

         throw new Exception("force system to throw a exception");

  }

}

我们把beta工程添加入我们在eclipse中配好的j2eeserver中去并启动起来。

在IE中输入:http://localhost:8080/beta/index.do。 系统直接跳到login界面

我们输入相关的用户名写密码。

我们选中“13号学生高乐高”与“9号学生”,点“deletestudent”按钮。

后台抛错了,查看数据库内的数据

数据还在,说明我们的iBatis的事务已经在spring中启作用了.

再次更改StudentServiceImpl.java类中的delStudent方法,把“throw new Exception(“force system to throw a exception”);”注释掉,再来运行

我们再次选 中9号和13号学生,点deletestudent按钮,删除成功,这个够13的人终于被删了,呵呵。

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用 partclone 备份磁盘分区 下一篇使用foremost恢复已删除文件

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目