ÔÚ±¾ÀýÖУ¬ÎÒÃǽ«Ê¹ÓÃSpring
MVC¿ò¼Ü¹¹½¨Ò»¸öÈëÃż¶webÓ¦ÓóÌÐò¡£Spring MVC ÊÇSpring¿ò¼Ü×îÖØÒªµÄµÄÄ£¿éÖ®Ò»¡£ËüÒÔÇ¿´óµÄSpring
IoCÈÝÆ÷Ϊ»ù´¡£¬²¢³ä·ÖÀûÓÃÈÝÆ÷µÄÌØÐÔÀ´¼ò»¯ËüµÄÅäÖá£
MVC¿ò¼ÜÊÇʲô
Ä£ÐÍ-ÊÓͼ-¿ØÖÆÆ÷£¨MVC£©ÊÇÒ»¸öÖÚËùÖÜÖªµÄÒÔÉè¼Æ½çÃæÓ¦ÓóÌÐòΪ»ù´¡µÄÉè¼ÆÄ£Ê½¡£ËüÖ÷Ҫͨ¹ý·ÖÀëÄ£ÐÍ¡¢ÊÓͼ¼°¿ØÖÆÆ÷ÔÚÓ¦ÓóÌÐòÖеĽÇÉ«½«ÒµÎñÂß¼´Ó½çÃæÖнâñͨ³££¬Ä£Ð͸ºÔð·â×°Ó¦ÓóÌÐòÊý¾ÝÔÚÊÓͼ²ãչʾ¡£ÊÓͼ½ö½öÖ»ÊÇչʾÕâЩÊý¾Ý£¬²»°üº¬ÈκÎÒµÎñÂß¼¡£¿ØÖÆÆ÷¸ºÔð½ÓÊÕÀ´×ÔÓû§µÄÇëÇ󣬲¢µ÷Óúǫ́·þÎñ£¨manager»òÕßdao£©À´´¦ÀíÒµÎñÂß¼¡£´¦Àíºó£¬ºǫ́ҵÎñ²ã¿ÉÄܻ᷵»ØÁËһЩÊý¾ÝÔÚÊÓͼ²ãչʾ¡£¿ØÖÆÆ÷ÊÕ¼¯ÕâЩÊý¾Ý¼°×¼±¸Ä£ÐÍÔÚÊÓͼ²ãչʾ¡£MVCģʽµÄºËÐÄ˼ÏëÊǽ«ÒµÎñÂß¼´Ó½çÃæÖзÖÀë³öÀ´£¬ÔÊÐíËüÃǵ¥¶À¸Ä±ä¶ø²»»áÏ໥ӰÏì¡£

ÔÚSpring MVCÓ¦ÓóÌÐòÖУ¬Ä£ÐÍͨ³£ÓÉPOJO¶ÔÏó×é³É£¬ËüÔÚÒµÎñ²ãÖб»´¦Àí£¬Ôڳ־òãÖб»³Ö¾Ã»¯¡£ÊÓͼͨ³£ÊÇÓÃJSP±ê×¼±êÇ©¿â£¨JSTL£©±àдµÄJSPÄ£°å¡£¿ØÖÆÆ÷²¿·ÖÊÇÓÉdispatcher
servlet¸ºÔð£¬ÔÚ±¾½Ì³ÌÖÐÎÒÃǽ«»áÁ˽â¸ü¶àËüµÄÏà¹ØÏ¸½Ú¡£
һЩ¿ª·¢ÈËÔ±ÈÏΪҵÎñ²ãºÍDAO²ãÀàÊÇMVCÄ£ÐÍ×é¼þµÄÒ»²¿·Ö¡£ÎҶԴ˳ÖÓв»Í¬µÄÒâ¼û¡£ÎÒ²»ÈÏΪҵÎñ²ã¼°DAO²ãÀàΪMVC¿ò¼ÜµÄÒ»²¿·Ö¡£Í¨³£Ò»¸öwebÓ¦ÓÃÊÇ3²ã¼Ü¹¹£¬¼´Êý¾Ý-ÒµÎñ-±íʾ¡£MVCʵ¼ÊÉÏÊDZíʾ²ãµÄÒ»²¿·Ö¡£

Dispatcher Servlet(Spring¿ØÖÆÆ÷)
ÔÚ×î¼òµ¥µÄSpring MVCÓ¦ÓóÌÐòÖУ¬¿ØÖÆÆ÷ÊÇΨһµÄÄãÐèÒªÔÚJava
web²¿ÊðÃèÊöÎļþ£¨¼´web.xmlÎļþ£©ÖÐÅäÖõÄServlet¡£Spring MVC¿ØÖÆÆ÷ ¡ª¡ªÍ¨³£³Æ×÷Dispatcher
Servlet£¬ÊµÏÖÁËǰ¶Ë¿ØÖÆÆ÷Éè¼ÆÄ£Ê½¡£²¢ÇÒÿ¸öwebÇëÇó±ØÐëͨ¹ýËüÒÔ±ãËüÄܹ»¹ÜÀíÕû¸öÇëÇóµÄÉúÃüÖÜÆÚ¡£
µ±Ò»¸öwebÇëÇó·¢Ë͵½Spring MVCÓ¦ÓóÌÐò£¬dispatcher
servletÊ×ÏȽÓÊÕÇëÇó¡£È»ºóËü×éÖ¯ÄÇЩÔÚSpring webÓ¦ÓóÌÐòÉÏÏÂÎÄÅäÖõģ¨ÀýÈçʵ¼ÊÇëÇó´¦Àí¿ØÖÆÆ÷ºÍÊÓͼ½âÎöÆ÷£©»òÕßʹÓÃ×¢½âÅäÖõÄ×é¼þ£¬ËùÓеÄÕâЩ¶¼ÐèÒª´¦Àí¸ÃÇëÇó¡£

ÔÚSpring3.0Öж¨ÒåÒ»¸ö¿ØÖÆÆ÷À࣬Õâ¸öÀà±ØÐë±êÓÐ@Controller×¢½â¡£µ±ÓÐ@Controller×¢½âµÄ¿ØÖÆÆ÷ÊÕµ½Ò»¸öÇëÇóʱ£¬Ëü»áѰÕÒÒ»¸öºÏÊʵÄhandler·½·¨È¥´¦ÀíÕâ¸öÇëÇó¡£Õâ¾ÍÐèÒª¿ØÖÆÆ÷ͨ¹ýÒ»¸ö»ò¶à¸öhandlerÓ³ÉäÈ¥°Ñÿ¸öÇëÇóÓ³Éäµ½handler·½·¨¡£ÎªÁËÕâÑù×ö£¬Ò»¸ö¿ØÖÆÆ÷ÀàµÄ·½·¨ÐèÒª±»@RequestMapping×¢½â×°ÊΣ¬Ê¹ËüÃdzÉΪhandler·½·¨¡£
handler·½·¨´¦ÀíÍêÇëÇóºó£¬Ëü°Ñ¿ØÖÆÈ¨Î¯ÍиøÊÓͼÃûÓëhandler·½·¨·µ»ØÖµÏàͬµÄÊÓͼ¡£ÎªÁËÌṩһ¸öÁé»îµÄ·½·¨£¬Ò»¸öhandler·½·¨µÄ·µ»ØÖµ²¢²»´ú±íÒ»¸öÊÓͼµÄʵÏÖ¶øÊÇÒ»¸öÂß¼ÊÓͼ£¬¼´Ã»ÓÐÈκÎÎļþÀ©Õ¹Ãû¡£Äã¿ÉÒÔ½«ÕâЩÂß¼ÊÓͼӳÉäµ½ÕýÈ·µÄʵÏÖ£¬²¢½«ÕâЩʵÏÖдÈëµ½ÉÏÏÂÎÄÎļþ£¬ÕâÑùÄã¾Í¿ÉÒÔÇáËɵĸü¸ÄÊÓͼ²ã´úÂëÉõÖÁ²»ÓÃÐÞ¸ÄÇëÇóhandlerÀàµÄ´úÂë¡£
Ϊһ¸öÂß¼Ãû³ÆÆ¥ÅäÕýÈ·µÄÎļþÊÇÊÓͼ½âÎöÆ÷µÄÔðÈΡ£Ò»µ©¿ØÖÆÆ÷ÀàÒѽ«Ò»¸öÊÓͼÃû³Æ½âÎöµ½Ò»¸öÊÓͼʵÏÖ¡£Ëü»á¸ù¾ÝÊÓͼʵÏÖµÄÉè¼ÆÀ´äÖȾ¶ÔÓ¦¶ÔÏó¡£
SpringÈëÃÅʾÀý
ÔÚÕâ¸öÓ¦ÓóÌÐòÖУ¬ÎÒ½«´´½¨×î¼òµ¥µÄÔ±¹¤¹ÜÀíÓ¦ÓóÌÐòµÄÑÝʾ£¬ËüÖ»ÓÐÒ»¸ö¹¦ÄÜ£¬¼´ÏµÍ³ÌṩµÄËùÓйÍÔ±µÄÁÐ±í¡£ÈÃÎÒÃǼÇÏ´ËÓ¦ÓóÌÐòµÄĿ¼½á¹¹¡£

ÏÖÔÚÈÃÎÒÃDZàдËùÓÐÉæ¼°Õâ¸öÈëÃÅÓ¦ÓóÌÐòµÄÎļþ¡£
pom.xml
ÒÔÏÂpom.xmlÎļþÖаüº¬spring mvcÒÀÀµ¼°Îª±àдjspÎļþÌṩ֧³ÖµÄtaglibÏà¹ØÒÀÀµ
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.howtodoinjava.demo</groupId> <artifactId>springmvcexample</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springmvcexample Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- Tag libs support for view layer -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<finalName>springmvcexample</finalName>
</build>
</project> |
web.xml
Õâ×¼òµÄweb.xmlÎļþÉùÃ÷ÁËÒ»¸öServlet£¨¼´dispatcher
servlet£©À´½ÓÊÕËùÓÐÀàÐ͵ÄÇëÇó¡£Dispatcher servletÔÚÕâÀï³äµ±Ç°¶Ë¿ØÖÆÆ÷µÄ½ÇÉ«¡£
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spring Web MVC Hello World
Application</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app> |
spring-servlet.xml£¨ÄãÒ²¿ÉÒÔÓÃapplicationContext.xmlÎļþ£©
ÔÚÇëÇóhandler¡¢ÒµÎñ²ã¡¢dao²ã£¬ÎÒÃÇʹÓôø×¢½âµÄÀ࣬ËùÒÔÎÒΪ¡°com.howtodoinjava.demo¡±°üÀïµÄËùÓÐÀàÆôÓÃÁË×¢½â´¦Àí
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Spring Web MVC Hello World
Application</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app> |
EmployeeController.java
×¢½â@RequestMappingÔÚÀ༶±ðºÍ·½·¨¼¶±ð²ãÃæÈ·¶¨½«±»µ÷Ó÷½·¨µÄURL¡£
<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" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.howtodoinjava.demo"
/>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"
/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"
/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"
/>
<property name="suffix" value=".jsp"
/>
</bean>
</beans> |
ÔĶÁ¸ü¶à£ºÈçºÎʹÓÃ@Component¡¢@Respository¡¢@Service¼°@Controller×¢½â£¿
EmployeeVO.java
Õâ¸öÀà×÷ΪMVCģʽµÄÄ£ÐÍ¡£
package com.howtodoinjava.demo.model;
import java.io.Serializable;
public class EmployeeVO implements Serializable
{
private static final long serialVersionUID = 1L;
private Integer id;
private String firstName;
private String lastName;
//Setters and Getters
@Override
public String toString() {
return "EmployeeVO [id=" + id + ",
firstName=" + firstName
+ ", lastName=" + lastName + "]";
}
} |
EmployeeDAO.java
Õâ¸öÀàλÓÚÈý²ã¼Ü¹¹ÖеĵÚÈý²ã¡£¸ºÔðÓëµ×²ãµÄÊý¾Ý¿â´æ´¢½øÐн»»¥¡£
import java.util.List;
import com.howtodoinjava.demo.model.EmployeeVO;
public interface EmployeeDAO
{
public List<EmployeeVO> getAllEmployees();
} |
EmployeeDAOImpl.java
import java.util.ArrayList; import java.util.List;
import org.springframework.stereotype.Repository;
import com.howtodoinjava.demo.model.EmployeeVO;
@Repository
public class EmployeeDAOImpl implements EmployeeDAO
{
public List<EmployeeVO> getAllEmployees()
{
List<EmployeeVO> employees = new ArrayList<EmployeeVO>();
EmployeeVO vo1 = new EmployeeVO();
vo1.setId(1);
vo1.setFirstName("Lokesh");
vo1.setLastName("Gupta");
employees.add(vo1);
EmployeeVO vo2 = new EmployeeVO();
vo2.setId(2);
vo2.setFirstName("Raj");
vo2.setLastName("Kishore");
employees.add(vo2);
return employees;
}
} |
EmployeeManager.java
Õâ¸öÀà´¦ÓÚÈý²ã¼Ü¹¹Öеĵڶþ²ã¡£¸ºÔðÓëDAO²ã½»»¥¡£
import java.util.List;
import com.howtodoinjava.demo.model.EmployeeVO;
public interface EmployeeManager
{
public List<EmployeeVO> getAllEmployees();
} |
EmployeeManagerImpl.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.howtodoinjava.demo.dao.EmployeeDAO;
import com.howtodoinjava.demo.model.EmployeeVO;
@Service
public class EmployeeManagerImpl implements EmployeeManager
{
@Autowired
EmployeeDAO dao;
public List<EmployeeVO> getAllEmployees()
{
return dao.getAllEmployees();
}
} |
employeesListDisplay.jsp
Õâ¸öjsp±»ÓÃÓÚÏÔʾϵͳÖеÄËùÓÐÔ±¹¤¡£ËüÑ»·±éÀúemployee¼¯ºÏ£¬²¢ÇÒÔÚÒ»¸ö±íÖдòÓ¡ËûÃǵÄÏêϸÐÅÏ¢¡£Õâ·ûºÏMVCģʽµÄÊÓͼ²ã¡£
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<title>Spring MVC Hello World</title>
</head>
<body>
<h2>All Employees in System</h2>
<table border="1">
<tr>
<th>Employee Id</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<c:forEach items="${employees}" var="employee">
<tr>
<td>${employee.id}</td>
<td>${employee.firstName}</td>
<td>${employee.lastName}</td>
</tr>
</c:forEach>
</table>
</body>
</html> |
ÏÖÔÚÔÚÄúµÄÓ¦ÓóÌÐò·þÎñÆ÷£¨ÎÒÓõÄÊÇtomcat 7£©²¿ÊðÓ¦ÓóÌÐò¡£²¢µã»÷¡°http://localhost:8080/springmvcexample/employee-module/getAllEmployees¡±¡£Èç¹ûÄãÒÑÕýÈ·ÅäÖÃËùÓÐÄÚÈÝ£¬Ä㽫»áÔÚÆÁĻϿ´µ½£º

|