第ä¸ç« SpringMVCä¹ åºç¡ç¥è¯å代ç
ä¸.SpringMVCæ¦æ¬
SpringMVCä»åé¢ä¸çææå¯ä»¥çè§£æå®å¨springçåºç¡ä¸å äºmvcçææ³ï¼è®©è§å¾ï¼æ§å¶ï¼æ¨¡åè¿ä¸å±å离SpringMVCå ¶å®å¯ä»¥çææ¯struts2+springãæ¯è¾å®æ¹ç说æ³SpringMVCæ¯æ¯ä¸ç§åºäºJavaçå®ç°äºWeb MVC设计模å¼ç请æ±é©±å¨ç±»åçè½»é级Webæ¡æ¶ï¼å³ä½¿ç¨äºMVCæ¶ææ¨¡å¼çææ³ï¼å°webå±è¿è¡è责解è¦ï¼åºäºè¯·æ±é©±å¨æçå°±æ¯ä½¿ç¨è¯·æ±-ååºæ¨¡åï¼æ¡æ¶çç®çå°±æ¯å¸®å©æä»¬ç®åå¼åï¼Spring Web MVC乿¯è¦ç®åæä»¬æ¥å¸¸Webå¼åçã
äº.Spring MVC工使µç¨
Spring MVC工使µç¨å¾
SpringMVCç工使µç¨æå
1.ç¨æ·åæå¡å¨åé请æ±ï¼è¯·æ±ä¼è¢«SpringMVCçååæ§å¶å¨DispatcherServletæè·ã
2.DispatcherServletå°æè·å°çurlè¿è¡è§£æï¼å°è§£æç»æäº¤ç»HandlerMappingï¼HandlerMappingæ ¹æ®ä¼ è¿æ¥çurlè§£æç»ææ¥å¹é ç¸åºçHandlerï¼å¤çå¨ï¼ã
3.DispatcherServletå°å¹é çç»æäº¤ç»HandlerAdapter,ç±HandlerAdapterè°ç¨çæ£çå¤ç卿¥è¿è¡å¤çç¨æ·ç请æ±ï¼å¤ç宿åè¿åä¸ä¸ªModelAndView对象(è§å¾å 䏿°æ®æ¨¡å)交ç»DispatcherServletã
4.DispatcherServletå°ModelAndView对象交ç»ViewResolverå¤ç,ViewResolver对ModelAndView对象è¿è¡è§£æï¼æ ¹æ®è§å¾å产çä¸ä¸ªviewå®ä¾ã
5.DispatcherServletå°view对象åmodel交ç»Viewè¿è¡å¤çï¼View对è§å¾æ¸²æï¼æåå°ç»æåç°ç»ç¨æ·ã
ä¸.SpringMVC代ç å®ä¾
1.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">
- <display-name></display-name>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <servlet>
- <!-- DispatcherServletåå§åçä¸ä¸æå è½½çBeanæ¯åªå¯¹Spring Web MVCææçBeanï¼å¦ControllerãHandlerMappingãHandlerAdapterççï¼è¯¥åå§åä¸ä¸æåºè¯¥åªå è½½Webç¸å ³ç»ä»¶ã -->
- <servlet-name>springMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:springController.xml</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>springMVC</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <!--
- ContextLoaderListeneråå§åçä¸ä¸æå è½½çBeanæ¯å¯¹äºæ´ä¸ªåºç¨ç¨åºå ±äº«çï¼ä¸ç®¡æ¯ä½¿ç¨ä»ä¹è¡¨ç°å±ææ¯ï¼ä¸è¬å¦DAOå±ãServiceå±Beanï¼
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath*:springController.xml</param-value>
- </context-param>
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- -->
- </web-app>
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://www.springframework.org/schema/beans"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
- <!-- handlerMapping -->
- <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- <property name="mappings">
- <props>
- <prop key="springMVC.d">HelloWorld</prop>
- </props>
- </property>
- </bean>
- <bean id="HelloWorld" class="com.wangbiao.springMVC.HelloWorld">
- <property name="methodNameResolver">
- <ref local="methodNameResolver"/>
- </property>
- </bean>
- <!-- å¨urlä¸å¯¹åºå ·ä½çæ¹æ³,éè¿måé¢å¸¦çåæ°æ¥ç¡®å®æ¹æ³ -->
- <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
- <property name="paramName"><value>m</value></property>
- <property name="defaultMethodName"><value>execute</value></property>
- </bean>
- <!--è§å¾è§£æå¨-->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <!-- webrootå°ä¸æå®æä»¶å¤¹æä»¶è·¯å¾ -->
- <property name="prefix" value="/"/>
- <!-- è§å¾åç§°åç¼ -->
- <property name="suffix" value=".jsp"/>
- </bean>
- </beans>
- package com.wangbiao.springMVC;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
- public class HelloWorld extends MultiActionController{
- public ModelAndView sayHelloWorld(HttpServletRequest request, HttpServletResponse response) {
- String param = request.getParameter("param");
- System.out.println("springMVCæµè¯ï¼helloWorld;"+param);
- ModelAndView mv = new ModelAndView();
- mv.addObject("content", "this is springMVC HelloWorld");
- mv.setViewName("springMVC/helloWorld");
- return mv;
- }
- }
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <body>
- ${requestScope.content }
- </body>
- </html>
卿µè§å¨ä¸è¾å ¥ï¼http://localhost:8000/SpringMVC/springMVC.d?m=sayHelloWorld¶m=123
页é¢å±ç¤ºä¸ºï¼
æ´ä¸ªçSpringMVCæµç¨å°±æ¯è¿æ ·çï¼éè¦è¯´æçæ¯HelloWorldè¿æ ·çå¤çå¨å¿ 须继æ¿MultiActionControllerï¼HelloWorldä¸çsayHelloWorldæ¹æ³çåæ°å¿ é¡»æ¯HttpServletRequest åHttpServletResponseï¼è¿éæä¸ç¥éæ¯ä»ä¹åå åï¼å¦ææç¥éç请åè¯æä¸å£°ï¼ææ¿ä¸å°½ãä¸é¢ç代ç å¨springController.xmlä¸çmethodNameResolverå¯ä»¥å®ç°ä¸ä¸ªå¤çå¨å¯¹åºå¤ä¸ªæ¹æ³ï¼æ ¹æ®http://localhost:8000/SpringMVC/springMVC.d?m=sayHelloWorld¶m=123ä¸çâm=sayHelloWorldâæ¥ç¡®å®å¤çæ¹è¯·æ±çæ¹æ³ã