SpringMVC 是一种基于java实现了web mvc设计模式的请求驱动类型的轻量级web框架,将web层进行职责解耦。
一、环境配置
1.spring-framework 3.2.0 版本
2. 依赖jar包:将以下的jar包拷贝到WEB-INF/lib目录下
3. 辅助jar包:
commons-logging.jar(日志输出)
标签库支持:Jstl.jar、Standard-1.1.2.jar
二、HelloWorld 实例
1. 前端控制器的配置(web.xml)
<servlet >
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
下方classpath后面有个*号是表示会加载所有在classpath路径下的后面指定的文件、不配置的话只会加载一个。
在大型项目开发中、一般都是以模块来开发、各个小组都有自己的配置文件、这样既具有独立性又容易管理。
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/springMVC-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- load-on-startup:表示启动容器时初始化该Servlet;
- url-pattern:表示哪些请求交给Spring Web MVC处理,“/”是用来定义默认servlet映射的。 也可以加“*、html”表示拦截所有html为扩展名的请求。
接下来我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB-INF/DispatcherServlet的Servlet名字-servlet.xml配置文件。
2. springMVC-servlet.xml文件
springMVC-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为springMVC(<servlet-name>springMVC</servlet-name>),再加上“-servlet”后缀而形成的springMVC-servlet.xml文件名.
<!-- 配置如何找到视图,name,代表路径 class 配置视图 -->
<bean name="/test/helloworld" class="com.tgb.web.controller.HelloWorldController" />
<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
- InternalResourceViewResolver : 用于支持Servlet、JSP视图解析
- prefix和suffix :
对转向页面的路径解析。prefix:前缀, suffix:后缀
3. 创建Controller
public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("Hello ,Beautiful Girl!");
//第一种方式传递字符串
//String hello="Hello ,Beautiful Girl!";
//第一种方式,返回字符串
//return new ModelAndView("/welcome","result",hello);
//第二种方式传递map数据类型
Map<String,Object> map = new HashMap<String,Object>();
//给map赋值
map.put("map1", "提高班1");
map.put("map2", "提高班2");
map.put("map3", "提高班3");
return new ModelAndView("/welcome","map",map);
}
}
4. 创建 jsp页面
<body>
你们好!
<br>
<h>传递数据</h>
${result}
<div>
<c:forEach items="${map }" var="m">
${m.key }--> ${m.value }
</c:forEach>
</div>
</body>
</html>
通过这个实例,我们来总结一下SpringMVC的一点点流程。
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,即在web.xml文件中配置。DispatcherServlet负责转发每一个Request请求给相应的Handler,即我们的controller页面控制器。 Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。