spring mvc 基础篇
首先总结下mvc框架学习步骤:
1.环境搭建;
2.如何将view值传给controller(控制器);
3.Controller如何把值传给view;
4.异常处理;
5.页面标签;
6.文件上传;
7.源码的深入;
好,言归正传,下面开始spring mvc 的开发
第一步.导入必备包
通过builConfigurePath在其中新建一个spring mvc的user Libaray,然后将spring mvc的必备包放入其中,方便以后的使用
必备包如下,可以自己去spring 官网下载
第二步.了解spring mvc的运行机制
首先请求到达dispatcherServlet(可以理解为一个控制器);控制器会找handlerMapping(位于配置文件之中),然后handlerMapping会找到当前的url请求应该交由那个具体的controller处理(即他负责url和controller的一种映射关系);找到映射关系以后就交由响应的Controller(处理器)处理;然后controller就和我的service,dao,model层完成交互,处理得到某个值,然后返回某个视图;然后返回的这个视图,它通过viewResolver来确定,它究竟对应于哪一个视图,是用那种形式返回的;再找到一个视图(View)返回给它。这样就完成了一个完整的spring MVC的运行过程。
第三步.在web.xml中配置dispatcherServlet
捕获所有请求交由dispatcherServlet处理
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
第四部,在WEB-INF中创建一个xml文件,来负责springmvc的配置
必须命名为spring-servlet.xml(与web.xml中的servlet-name一致);
<span style="color:#000000;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
<bean name="/welcome.html" class=<span style="color:#33CC00;">"<span style="background-color: rgb(255, 255, 255);">com.qzp.web.WelcomeController</span></span>"></bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans></span>
handlerMapping即在此文件中创建一个bean(name是"/welcome.html "),有它对应的处理servlet处理,
然后是视图解析器ViewResolver
视图的映射是通过 prefix+视图名称+suffix来完成映射的,如:控制器中返回一个视图,此处它会去/WEB-INF/jsp/+"url名称"+.jsp中查找该jsp文件
第五步、第六步,也就是建立相应的servlet和相应的jsp视图
com.qzo.web.WelcomeController 与上面的class对应
package com.qzp.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class WelcomeController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("welcome");
return new ModelAndView("<span style="color:#009900;">welcome</span>");
}
}
接着是视图层,即jsp页面,建在WEB-INF/JSP/之下 名字必须为
welcome.jsp(此处的welcome与ModelAndView中的一致)
<body>
welcome!!
</body>
最后访问welcome.html文件会跳转到welcome.jsp页面之中,以上就是一个spring mvc的执行流程。