关于annotation这个配置的问题


老师回答的意思是包扫描下的类不用再写@CONTROLLER这种注解了吗?
还有就是第二句话 <mvc:default-servlet-handler/>这个跟再WEB.XML中DEFAULT有什么区别?配置了有什么用吗?
正在回答
同学是说
<mvc:default-servlet-handler/>
和

这两个配置吗?
这两个是相互配合的呦。
在springmvc.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。如果你所有的Web应用服务器的默认Servlet名称不是"default",则需要通过default-servlet-name属性显示指定:
<mvc:default-servlet-handler default-servlet-name="所使用的Web服务器默认使用的Servlet名称" />
这里我们配置的是Servlet名称是"default",可以通过<mvc:default-servlet-handler />的配置
转由Web应用服务器默认的Servlet处理,如果你配置的静态资源的Servlet名称不是"default",则还有通过<mvc:default-servlet-handler default-servlet-name="对应的Servlet名称" /> 配置。
所以它们不是重复的,而是互相配合的哟。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


我的意思是这两个不都是把静态资源使用默认servlet来转发吗? 为什么两个都配置?配置一个不行吗?
同学你好,<mvc:annotation-driven/>这个配置,扫描对应包下的类,如果类中有Spring注解,才会将其注册为Spring的bean,所以@Controller这种注解不可以省略。
<mvc:default-servlet-handler/>是对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,由DispatcherServlet继续处理。另外问一下同学web.xml中的DEFAULT是指那里呢,建议同学详细描述一下。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星