常用注解

    @Controller
    在类上面定义,表明该类为控制器,返回字符串与redirect:xxx
    @RequestMapping
    类或方法上面使用此注解,设置URL访问地址。它有两个属性,value指定访问路径,method指定指定请求方式,请求方式在RequestMethod这个类中,全部以常量形式定义,它默认使用GET请求。
    @RequestParam
    指定Request请求参数,在方法参数中定义,相当于传统的request.getParameter()
    @PathVariable
    获取URL访问路径变量,这是Spring MVC 3.0框架才加入的特性,基于RESTful风格的URL访问路径。
    @ModelAttribute
全局式的方法,在一组URL访问路径中,每次都会执行,方法返回结果保存在module会话中。
    @Service
    在类上面定义,指定被注解的类是业务逻辑组件,如果不指定具体的Bean ID,则采用默认命名方式,即类名的首字母小写。

    @Autowired
    IoC自动注入功能,替换以前的set写法,在SSH2中就已经开始使用了。

    @Qualifier
    对同一接口类有不同实现指定具体的实现类。
    @ResponseBody
    同样定义在方法上,Ajax调用声明,指定方法返回结果为Ajax回调函数结果。这是Spring MVC 3.0框架中增加的一个新特性。
    @InitBinder
    初始化数据绑定与类型转换,将传入的参数转换为自定义类型,或者对参数进行自定义处理。

@Controller 声明Action组件
@Service    声明Service组件    @Service("myMovieLister") 
@Repository 声明Dao组件
@Component   泛指组件, 当不好归类时. 
@RequestMapping("/menu")  请求映射
@Resource  用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") 
@Autowired 用于注入,(srping提供的) 默认按类型装配 
@Transactional( rollbackFor={Exception.class}) 事务管理
@ResponseBody
@Scope("prototype")   设定bean的作用域

 

Servlet拦截匹配规则事例

当映射为@RequestMapping(“/user/add”)时:
1、拦截*.do,例如:/user/add.do,弊端:所有的url都要以.do结尾。不会影响访问静态文件。
2、拦截/app/*,例如:/app/user/add,弊端:请求的url都要包含/app,@RequestMapping(“/user/add”)中不须要包含/app。
3、拦截/,例如:/user/add,弊端:对jpg,js,css静态文件的访问也被拦截不能正常显示。
4、拦截/*,可以走到Action中,但转发到jsp时再次被拦截,不能访问到jsp。

转发与重定向

可以通过redirect/forward:url方式转到另一个Action进行连续的处理。

可以通过redirect:url 防止表单重复提交 。

写法如下:

return “forward:/order/add”;

return “redirect:/index.jsp”;