简易介绍springMVC框架
2014-10-09 23:06
471 查看
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>
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
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
l @RequestMapping("/home.action")
l public String goHome(HttpServletRequest request) {
l
l return "index";
l }
l
l }
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
l <context:component-scan base-package="cic"></context:component-scan>
l <!-- 组件扫描 -->
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
l </bean>
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、 了解DispatcherServletpublic 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
l @RequestMapping("/home.action")
l public String goHome(HttpServletRequest request) {
l
l return "index";
l }
l
l }
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
l <context:component-scan base-package="cic"></context:component-scan>
l <!-- 组件扫描 -->
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
l </bean>
相关文章推荐
- SpringMVC(一)——流程框架总体介绍
- SpringMVC框架的介绍
- springMVC框架整体介绍
- SpringMVC_01 SpringMVC框架介绍
- SpringMVC-框架介绍
- SpringMvc的框架结构介绍
- Web框架介绍 SpringMVC
- SpringMVC(一)——流程框架总体介绍
- SpringMVC框架总体介绍(一)
- [置顶] 【Spring MVC】深度探险SpringMVC(二)——框架介绍
- SpringMVC框架介绍
- SpringMVC(一)——流程框架总体介绍
- SpringMVC框架介绍
- SpringMVC框架介绍
- SpringMVC(一)——流程框架总体介绍
- SpringMVC框架介绍
- SpringMVC流程框架总体介绍
- SpringMVC框架介绍
- 简易的springmvc入门程序-springmvc框架的搭建
- SpringMVC定时任务--Quartz定时任务框架介绍和Cron表达式详解