`
Nanigac
  • 浏览: 14074 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring MVC3入门之1 Hello World(XML based)

阅读更多

Spring MVC入门系列基于以下的环境和版本:

Windows XP

jdk-6u16-windows-i586

eclipse-jee-helios-SR2-win32

apache-tomcat-6.0.32-windows-x86

Sysdeo Tomcat Launcher Plugin

servlet-api-2.5

apache-maven-3.0.3

M2Eclipse Plugin

spring-webmvc 3.0.5.RELEASE

 

开始Hello World之前,请容许我啰嗦下:

Spring MVC和其他web mvc框架同样包括标准的MVC三部件。

1.Models                一般来讲,Models=Domain Objects,作为数据载体贯穿于各层。

2.Views                  表示层(view)的实现有很多,以JSP+JSTL(Java Standard Tag Library)最为普遍常见。

3.Controllers         控制器,主要负责处理和路由请求,业务处理。

 

Spring MVC和其他mvc框架同样是请求(Request)驱动,下图描述了Spring MVC中是如何处理web请求滴。

好了,开始Hello World之旅。

1. New Maven Project


2.New Maven Project选择maven-archetype-webapp

 3.接下来Group Id , Artifact Id ,Version


4.点Finish。接下来,maven引入以下dependencies。

spring-webmvc选择3.0.5.RELEASE版本

servlet-api选择2.5版本

jstl选择1.1.2版本

taglibs standard选择1.1.2版本

单元测试junit这次不会涉及到,去掉了。

至于maven如何引入,后面在maven系列中会详细介绍。

好了,最终pom.xml长这样。

<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.nanigac.springmvc</groupId>
	<artifactId>HelloWorldXMLBased</artifactId>
	<packaging>war</packaging>
	<version>1.0.0-SNAPSHOT</version>
	<name>HelloWorldXMLBased Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring-webmvc.version}</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>${servlet-api.version}</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>${jstl.version}</version>
		</dependency>
		<dependency>
			<groupId>taglibs</groupId>
			<artifactId>standard</artifactId>
			<version>${taglibs.version}</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>HelloWorldXMLBased</finalName>
	</build>
	<properties>
		<spring-webmvc.version>3.0.5.RELEASE</spring-webmvc.version>
		<servlet-api.version>2.5</servlet-api.version>
		<jstl.version>1.1.2</jstl.version>
		<taglibs.version>1.1.2</taglibs.version>
	</properties>
</project>

  5.接下来,web.xml长这样。嗯,这里用2.5版本的。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">

	<display-name>SpringMVC-HelloWorldXMLBased</display-name>

	<servlet>
		<servlet-name>mvc-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>mvc-dispatcher</servlet-name>
		<url-pattern>*.htm</url-pattern>
		<url-pattern>/helloworld.htm</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>helloworld.htm</welcome-file>
	</welcome-file-list>

</web-app>

 6.接下来,WEB-INF文件夹下新建mvc-dispatcher-servlet.xml,长这样。

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix">
			<value>/WEB-INF/pages/</value>
		</property>
		<property name="suffix">
			<value>.jsp</value>
		</property>
	</bean>

	<bean name="/helloworld.htm" class="com.nanigac.springmvc.controller.HelloWorldController" />

</beans>

7.接下来,在src\main\下新建java source folder,接着在src\main\java\下创建Package:com.nanigac.springmvc.controller,并新建HelloWorldController,长这样。

package com.nanigac.springmvc.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class HelloWorldController extends AbstractController {

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		ModelAndView model = new ModelAndView("HelloWorld");
		model.addObject("message", "Hello World!");

		return model;
	}
}

 8.接下来,移动index.asp到/WEB-INF/pages/下并rename为HelloWorld.jsp,编辑成这样。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>

<h1>${message}</h1>

</body>
</html>

9.最终Project Explorer里面项目结构长这样。

10.好吧,大功告成。选择Run AS  maven clean,Run AS maven package,成功以后可以在target目录下找到HelloWorldXMLBased.war。拷贝到%TOMCAT_HOME%/webapps/下,运行tomcat,http://localhost/HelloWorldXMLBased/ RP没问题的话,可以看到运行成功页面写着一个大大的Hello World!。祝lucky。

 

长话短说讲一下怎么跑起来的。

1.http://localhost/HelloWorldXMLBased/请求到web.xml中配置的首页helloworld.htm,参照servlet,servlet-mapping和context-param的配置,DispatcherServlet会将请求递给HelloWorldController。

2.HelloWorldController.java+mvc-dispatcher-servlet.xml中viewResolver的配置,

可以知道view是/WEB-INF/pages/HelloWorld.jsp。

3.model中有一个object叫做message,渲染页面,Response显示。

 

 

这一章节有点长了,还有以下几点没说到。

1.maven-webapp项目+tomcatPlugin如何在tomcat中调试运行的问题,会单独开一章,其实很简单。

2.maven的配置使用过程,这个请关注maven使用系列。

3.maven集成到eclipse的插件m2eclipse,例子HelloWorldXMLBased的过程中,Run on Server菜单会奇怪的消失,似乎m2eclipse还有一些问题。

  • 描述: Spring MVC
  • 大小: 16.6 KB
  • 大小: 22.1 KB
  • 大小: 27.7 KB
  • 大小: 21.5 KB
  • 大小: 6.9 KB
  • 大小: 13.1 KB
  • 大小: 21.7 KB
分享到:
评论

相关推荐

    springmvc入门

    接下来,我们将通过一个简单的 HelloWorld 实例来进一步理解 Spring MVC 的工作原理。 1. **创建后端控制器:** - 定义一个简单的控制器类,该类可以使用 `@Controller` 注解标记,并且包含一个或多个处理方法。 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    使用BeanPostProcessor的Hello World示例 3.7.1.2. RequiredAnnotationBeanPostProcessor示例 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.2.1. PropertyPlaceholderConfigurer示例 3.7.2.2. ...

    groovy+spring在web中的应用

    这些示例可能涵盖从简单的Hello World应用到复杂的MVC结构,甚至可能涉及到数据库操作和RESTful API设计。通过研究这些示例,读者可以更好地理解Groovy在Spring环境中的工作原理和最佳实践。 总的来说,Groovy与...

    外部接口调用 使用spring4+hessian4实例(二)

    3. **创建Hessian服务端启动类**:配置完服务后,通过Spring Boot或Spring MVC启动服务端,监听特定端口供客户端调用。 4. **创建Hessian客户端**:客户端同样需要引入Hessian库,并创建HessianProxyFactory来获取...

    springmvc完整案例

    例如,一个简单的Hello World控制器可能会有一个返回"Hello Spring MVC!"的`index`方法。 数据访问层通常由Spring的IoC容器管理,可以使用@Autowired注解自动装配bean。例如,我们可以创建一个Service接口和实现类...

    springMVC学习

    根据给定的文件信息,我们将深入探讨Spring MVC框架的核心概念及其与Spring框架内其他关键组件如IoC(Inversion of Control,控制反转)容器、DI(Dependency Injection,依赖注入)、AOP(Aspect Oriented ...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    SpringMVC4教程-超权威--超详细

    #### 二、SpringMVC的HelloWorld示例 - **搭建环境**:首先需要添加必要的JAR包到项目中,例如Spring核心库、Spring MVC库等。 - **配置文件**:在`web.xml`中配置DispatcherServlet,并指定其上下文配置文件路径。...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

Global site tag (gtag.js) - Google Analytics