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>
接下来我们需要配置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>
对转向页面的路径解析。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); } }
<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或都不返回。