首先,在对前台请求处理的时候,我们通常会用到以下的类或者方法
1.servlet
2.过滤器fiilter
3.listener
一、在web.xml标签配置的时候,用filter指定使用那些类来过滤URL链接。而且是在web启动的时候经行的初始化操作。
filter是一直存在的,url传过来,检查之后,可以保持原来的流程继续执行,被下一个filter或者servlet接收等等。同时,filter可以经行编码的过滤,检测用户,
修改Request和Response头部。
而servlet在处理完了之后就不会存在了。所以,在MVC模式里面,servlet总是充当者控制器的作用。
二、lisener不同于servlet和filter对URL操作,而是对特定对象操作:比如session创建了,session.setAttribute发生
三、对于struts和springMVC先看控制器实现
1.struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。
2.SpringMVC是方法级别的拦截,就像servlet控制数据一样(是在servlet上的扩展),拦截到方法之后根据参数上面的注解,把request的数据注入进去。
在SpringMVC里面,一个方法就对应着一个request上下文
四、拦截器的实现
<strong> <span style="font-size:18px;">1. @RequestMapping (value= "/whitelists" )
2. public String index(ModelMap map) {
3. Account account = accountManager.getByDigitId(SecurityContextHolder.get().getDigitId());
4. List<Group> groupList = groupManager.findAllGroup(account.getId());
5. map.put("account" , account);
6. map.put("groupList" , groupList);
7. return "/group/group-index" ;
8. }
9. // @ResponseBody ajax响应,处理Ajax请求也很方便
10. @RequestMapping (value= "/whitelist/{whiteListId}/del" )
11. @ResponseBody
12. public String delete( @PathVariable Integer whiteListId) {
13. whiteListManager.deleteWhiteList(whiteListId);
14. return "success" ;
15. }</span></strong>