M:模型层,他有着spring强大的融合能力,你可以根据自己的需求选择持久层技术,hibernate,ibatise,jdbc等
v:视图层也非常的灵活,你只有在在配置文件里选择你想要的试图解析类,其余的你就不要管了,你也可以配置试图框架velocity,itext
c:控制层,你只要类实现controller,不过springmvc自带了很多实现此此接口的类,你可以根据情况,实现相应的类
springmvc 请求示意图
controller类的继承体系关系,根据情况,自由选择
view视图解析的继承体系图
还有对execl,pdf的支持
这些都是mvc的结构
现在做个例子
1第一步加入包 spring-core-3.0,spring-web-3.0类库
2.配置web.xml
3.新建controller类
4.配置applicationContext.xml
第二步:web.xml
<?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"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <description><![CDATA[请求servlet配置]]></description> <servlet-name>dispatcherservlet</servlet-name> <!-- 记载请求接受类--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 加载配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!-- 配置servlet加载顺序 值越小加载就越靠前默认是0 --> <load-on-startup>1</load-on-startup> </servlet> <!--配置dispatcherservlet适用范围 --> <servlet-mapping> <servlet-name>dispatcherservlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
第三步:新建HelloController
package org.springmvcone.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; /** * * @author Z.Qiong * */ public class HelloController extends AbstractController{ private String successview; private String failview; public String getSuccessview() { return successview; } public void setSuccessview(String successview) { this.successview = successview; } public String getFailview() { return failview; } public void setFailview(String failview) { this.failview = failview; } @Override public ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView modelandview=new ModelAndView(); String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); if("wzq".equals(name)&&"wzq".equals(pwd)){ modelandview.addObject("sucess", "第一个例子成功了"); modelandview.setViewName(successview); }else{ modelandview.setViewName(failview); } return modelandview; } }
第四步配置:applicationContext.xml
<?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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 控制器类 --> <bean id="hellocontroller" class="org.springmvcone.controller.HelloController"> <property name="successview" value="success"></property> <property name="failview" value="index"></property> </bean> <!-- 配置试图解析类 --> <bean id="viewresolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置试图前缀 --> <property name="prefix" value="/"></property> <!-- 配置试图后缀 --> <property name="suffix" value=".jsp"></property> </bean> <!--请求分发类 --> <bean id="controllerResolver" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/login.do">hellocontroller</prop> </props> </property> </bean> </beans>