icemoff
2012-07-05 16:00
浏览 249
已采纳

spring3 MVC @controller 对应servlet 相应功能实现不出来

在servlet 中,想在 doget()或者doPost()前后可以做些处理,servlet中代码如下:
[code="java"]public class BaseServlet extends HttpServlet {

    // 在service 前建立 ThreadLocal 缓存 ,service 完成后释放
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {


    ThreadLocal user = null;
    try{
    user = new ThreadLocal();
    super.service(request, response);
    }finally{
    user.remove();
    }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    process(req,resp);
    }      

}
[/code]
在spring3 mvc中无法实现类似功能,我应该也要打到它的service()入口和出口的注解才可以做这样的处理,但苦于我实在找不到相应的资料,我现在的spring3 mvc代码如下:
[code="java"]@Controller
@RequestMapping("/user")
public class UserController{
@Resource
private UserService service;

    @RequestMapping("/list")
    private String list(Map modelt){
        PageModel pm = service.queryUser();
        model.put("pm", pm);
        return "user/list";
    }

}[/code]

要怎样才能实现上面servlet的功能

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • oyj7454103 2012-07-05 16:29
    已采纳

    [code="java"] <!-- 登录 拦截器 -->
    mvc:interceptors
    mvc:interceptor


    /mvc:interceptor
    /mvc:interceptors[/code]

    你可以指定哪些才拦截的

    点赞 评论
  • dashabenmao 2012-07-05 16:04

    写拦截器吧。。

    点赞 评论
  • wanghuanqiufly 2012-07-06 09:21

    1、通过AOP,如果直接在Controller里用AOp是不行的,需要将AOP作用于一个业务对象上,然后将业务对象注入在COntroller
    2、自己继承Controller然后配置文件声明该bean,实现handleRequest这个方法

    点赞 评论

相关推荐 更多相似问题