SpringMVC入门篇
MVC模式
(摘自菜鸟教程)
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
- Model 模型代表一个存取数据的对象或POJO类。模型接受视图数据的请求,并返回最终的处理结果。
- View 视图就是用户看到的并与之交互的界面信息,比如:html文件、jsp文件、ASP文件、php文件等。
- control 控制器是用户请求的处理,对用户的请求提交给模型进行数据的处理,并负责请求的转发等等。
MVC模式的优点:
- MVC模式实现了显示模块与功能模块的分离提高了程序的扩展性,复用性。
- 有利于开发时的分工。
SpringMVC概述
SpringMVC是Spring全家桶中web模块中的一部分,用于MVC模式下的“C”层,用于接收和返回请求。
说到MVC框架就不得不说一下Struts2了。
SpringMVC对比Struts2
- 框架的实现方式上: Struts2采用Filter实现,SpringMVC则采用Servlet实现。
- 方便程度上: SpringMVC随着版本的提升,在配置上明显少于Struts2,开发效率更高,以及SpringMVC继承了Ajax只需要注解@ResponseBody 就可以直接返回json格式的响应。
- 性能方面: SpringMVC中的Controller是单例模式,在启动时已经加载完毕,Struts2中每一个请求对应一个新的Action,需要对Action中的值重新注入。可见在内存占用和加载速度来看SpringMVC优于Struts2
SpringMVC快速入门
省略Maven导入依赖步骤
1. 注册核心控制器:
在web.xml中配置核心控制器
<!-- 注册springmvc框架核心控制器 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--到类目录下寻找我们的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--映射的路径为.action-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
2. 编写Controller:
这里的request和response都是Servlet原生的对象,方法的返回值为ModelAndView 对象,它用于封装跳转的视图的路径和数据。
public class DemoController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
//跳转到demo.jsp页面。
modelAndView.setViewName("/demo.jsp");
return modelAndView;
}
}
3. 配置Controller:
在application.xml中配置controller
<!--name属性的值表示的是请求的路径,当用户请求到/demo.action时,就会由DemoController 类进行处理 -->
<bean class="DemoController" name="/demo.action"></bean>
最后启动Tomcat,访问/demo.action这个路径就OK了。