? 掌握使用struts2基于注解方式实现登录、商品展示案例
整体流程的难点解析:首先分为用户登录功能和商品展示功能 这两个模块, 对于用户登录 我们通过注解开发实现点击登录进入struts2的action类进行校验, 如果正确的话保存用户信息到session后跳转到有一个展示商品链接的页面 , 如果用户登录失败的话, 存域失败信息后返回登录页面提示.
商品展示功能模块: 首先点击展示商品的链接后我们希望实现展示商品列表的功能 , 点击链接进入struts2的action中进行数据库的查询将查询的数据存到一个新定义的有用户是否已登录状态的字段的类Result类中并且设置登录状态字段为已登录, 然后通过自定义的过滤器实现对没有用户session的情形进行登录状态的修改和相应的提示信息存域, 最后再页面对登录状态字段进行判断 , 分情况展示内容 , 从而实现对没有登录用户的权限验证.
这里讲的异常处理,具体来说是控制器(controller)请求处方法的异常。
在 springm 中可能存在着多个控制器,各个控制器又存在着众多请求处理方法。若在每个方法上都进行异常处理,那样实在是过于繁琐。
// 关键 -> 子类通过重写该方法进行具体的异常处理 // 返回值 ModelAndView 可以设置发生异常时要显示的页面
springmvc 中默认实现该接口的类有:
通过上面的分析可以知道异常处理发生在 resolveException 这个方法。
// 判断是否支持该处理器 // 预处理回复消息:让请求头取消缓存 // 关键 -> 处理异常(抽象方法,留给子类实现)
// ①决定发生异常时的错误显示页面 // ②决定发生异常的错误状态码,并在 response 中设置 // ③ 返回错误页面
// 决定不同异常的错误显示页面(配置的异常类型来自于配置文件中 exceptionMappings) // 判断【发生的异常】是否属于 excludedExceptions(被过滤的异常),若是则不处理 // 找到指定异常的错误显示页面 // 若找不到该异常类型的错误页面,采用默认的错误显示页面(如果有,对应配置文件的 defaultErrorView) // 找到异常类型匹配的错误页面
// 决定错误页面匹配的错误状态码
报这个错误提示有两方面问题:
跳转后浏览器地址栏变化,会变成你跳转到的页面的地址。
跳转后浏览器地址栏不会变化。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。