简易介绍springMVC框架

spring MVC 处理过程   

 1.客户端请求提交到DispatcherServlet   

 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller  

 3.DispatcherServlet将请求提交到Controller  

 4.Controller调用业务逻辑处理后,返回ModelAndView   

 5.DispatcherServlet查询一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图  

视图负责将结果显示到客户端  

1、 开发步骤

1) 创建一个Web工程

2) 导入jar包

 

 

Springmvc会依赖spring

 

spring-aop-3.2.2.jar

spring-aspects-3.2.2.jar

spring-beans-3.2.2.jar

spring-context-3.2.2.jar

spring-context-support-3.2.2.jar

spring-core-3.2.2.jar

spring-expression-3.2.2.jar

spring-web-3.2.2.jar

spring-webmvc-3.2.2.jar

 

spring框架依赖包

com.springsource.org.aopalliance-1.0.0.jar

com.springsource.org.apache.commons.logging-1.1.1.jar


public class HelloController extends AbstractController {

 

protected ModelAndView handleRequestInternal(HttpServletRequest request,

HttpServletResponse response) throws Exception {

 

System.out.println(request.getRequestURI());

return new ModelAndView("index");//逻辑名

}

 

}

?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:mvc="http://www.springframework.org/schema/mvc"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 

http://www.springframework.org/schema/mvc 

http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 

http://www.springframework.org/schema/context 

http://www.springframework.org/schema/context/spring-context-3.2.xsd ">

<!-- 配置Controller -->

<bean name="/home.action" class="cn.itcast.controller.HelloController"/>

<!-- 配置ViewResolver 规则:前缀+逻辑名+后缀 -->

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

<property name="prefix" value="/WEB-INF/pages/"/>

<property name="suffix" value=".jsp"/>

</bean>

</beans>


1) 配置一个核心DispatcherServlet 单独的配置文件 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">

<!-- 配置springMVC核心分发器,拦截所有action -->

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.action</url-pattern>

</servlet-mapping>

</web-app>

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》


一、 深入了解MVC核心组件

 

1、 了解DispatcherServlet

public class DispatcherServlet extends FrameworkServlet {

public abstract class FrameworkServlet extends HttpServletBean {

public abstract class HttpServletBean extends HttpServlet

 

2、 默认搜索配置文件WEB-INF/actionName+”-servlet.xml

P139

public static final String DEFAULT_NAMESPACE_SUFFIX = "-servlet";

return (this.namespace != null ? this.namespace : 

getServletName() + DEFAULT_NAMESPACE_SUFFIX);

 

3、 *核心组件:中央处理器hanlderMapping

1) BeanNameUrlHandlerMapping

<bean id="beanNameUrlHandlerMapping" 

class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<bean name="/home.action" class="cn.itcast.controller.HelloController"/>

 

2) SimpleUrlHanlderMapping组件

<bean id="simpleUrlHandlerMapping" 

class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<prop key="/a.action">hController</prop>

<prop key="/b.action">hController</prop>

<prop key="/c.action">hController</prop>

</props>

</property>

</bean>

 

3) ControllerClassNameHandlerMapping

<bean id="controllerClassNameHandlerMapping" 

class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

 

注意访问的形式

1) 首字母小写 helloController.action

2) 去掉Controller hello.action

3) 多个单纯时,要全部小写

无需配置bean name属性或者id属性

 

4) 当访问URL有冲突时哪个一个handlerMapping来转向,或者报错?

默认按action-servlet.xml配置文件的顺序决定

 

可以通过order属性调整顺序

P533 

OrderComparator.sort(this.handlerMappings);

通过给handlerMapping增加order属性,可以改变配置的顺序,order默认0,这个值越小优先级越高。

冲突时,搜索到第一个匹配的,就直接转向。后面的都忽略。

 

<bean id="beanNameUrlHandlerMapping" 

class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

<property name="order" value="1"/>

</bean>


最新形式的开发:

注解方式进行:


l @Controller

l public class HelloController {

l  @RequestMapping("/home.action")

l  public String goHome(HttpServletRequest request) {

l  return "index";

l  }

l }


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

l <context:component-scan base-package="cic"></context:component-scan>

l  <!-- 组件扫描 -->

l  <!-- 内部资源视图解析器 -->

l  <bean name="viewResolver"

l  class=" org.springframework.web.servlet.view.InternalResourceViewResolver">

l  <property name="prefix" value="/WEB-INF/" />

l  <property name="suffix" value=".jsp"></property>

l  </bean>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值