我把它实践了一遍 然后想说我写下来能加深一下印象和加深理解。但是没有原博主写的那么细。
此处的MVC是指 Model:servlet配置文件,view是index.jsp,controller是新建的控制器类。
基本上一定要写的:servlet配置文件.xml(M ,配置controller)、各种jsp页面(V)、contorller类(C)、web.xml(配置servlet)
(1).新建一个dynamic web project 命名SpringMVCDemo,注意的就是要用tomcat,还有勾选自动配置web.xml,不然要自己手动配置,就很麻烦。
目录
(2).配置web.xml(圈起来的部分是自己补充的)
主要配置前端控制器DispatcherServlet。
手动配置声明一个Servlet,接受所有用户请求。
1:表示启动容器时初始化该Servlet
*.do :表示哪些请求交给Spring Web MVC处理,“*.do”是用来定义默认Servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。
至此,用户请求已交给Spring Web MVC框架来处理,因此我们需要配置Spring的配置文件,默认的DispatcherServlet会加载WEB-INF/ Servlet_Name-servlet.xml配置文件。对应本例即为WEB-INF/springMVCDemo-servlet.xml。
对于springMVCDemo-servlet.xml: 这个Servlet的名字是springMVCDemo,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中,关于key,以后说明。
在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。
(3)在src下建controller类
(4)在WEB-INF下的springMVCDemo-servlet.xml文件(手动配置)
这里中间bean那部分是自己手动配置的,配置了controller,以及配置了一个视图解析器
(5)在WEB-INF下建index.jsp(用于显示内容)
(6)最后启动tomcat运行
一、关于springMVC-mvc.xml 配置文件:
二、扫描指定的包中的类上的注解,常用的注解有:
@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的作用域
三、必要的:
(1)前端控制器DispatcherServlet:web.xml(配置servlet)
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。在web.xml中先写DispatcherServlet
一般在web.xml中:配置springMVC(即dispatcherServlet)、配置Spring(listener)、配置指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下(就是有很多bean的那个)
(2)处理器映射HandlerMapping:配置很多bean
在web.xml中配的标签,再加上“-servlet”后缀而形成文件名
如配置spring,则对于的springmvc的配置文件叫做spring-serlvet.xml。如果改为springMVC,对应的文件名则为springMVC-servlet.xml。
(3)控制器:controller(一个类使用了@Controller进行标记的都是Controller)
负责处理用户请求,完成之后返回ModelAndView对象给前端控制器。因为需要考虑并发,所以必须保证线程安全并且可重用。
4、视图解析器ViewResolver
负责对ModelAndView对象的解析,并查找对应的View对象。SpringMVC框架默认通过转发进行页面跳转,如果想通过重定向的方式进行跳转。
Spring MVC是一个模型 - 视图 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果的概念。
spring MVC基本就是 model(数据模型),view(jsp页面),controller(servlet)
web.xml中配置servlet或者在servlet类中用注释声明servlet,两者同时写则默认读取web.xml中的。
用于对于前端传递的参数不采用以往request.getParameter()的方式获取,而采用在方法的参数中设同名的参数(类),让SpringMVC自动映射同名字段(类中同名字段)来达到类型转换并对类型错误的参数转换自动抛出异常给全局异常处理器来处理。