Spring MVC开发快速入门
时间:2011-01-17
这篇文章将教你快速地上手使用 Spring 框架,如果你手上有一本《Spring in Action》,那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看,否则那将是一场恶梦!
首先,我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后,Spring 将这个请求交给一个名为 helloController 的程序进行处理,helloController 再调用 一个名为 hello.jsp 的 jsp 文件生成 HTML 代码发给用户的浏览器显示. 上面的名称(/hello.do,helloController,hello.jsp) 都是变量,你可以更改.
在 Spring MVC 中,jsp 文件中尽量不要有 Java 代码,只有 HTML 代码和"迭代(forEach)"与"判断(if)"两个jstl标签. jsp 文件只作为渲染(或称为视图 View)模板使用.
好了,我们开始吧. 首先我们需要一个放在 WEB-INF 目录下的 web.xml 文件:
web.xml:1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7
8 <context-param>
9 <param-name>contextConfigLocation</param-name>
10 <param-value>
11 /WEB-INF/database.xml
12 /WEB-INF/applicationContext.xml
13 </param-value>
14 </context-param>
15
16 <listener>
17 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
18 </listener>
19
20 <filter>
21 <filter-name>encodingFilter</filter-name>
22 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
23 <init-param>
24 <param-name>encoding</param-name>
25 <param-value>UTF-8</param-value>
26 </init-param>
27 </filter>
28
29 <filter-mapping>
30 <filter-name>encodingFilter</filter-name>
31 <url-pattern>*.do</url-pattern>
32 </filter-mapping>
33
34 <servlet>
35 <servlet-name>ideawu</servlet-name>
36 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
37 <load-on-startup>1</load-on-startup>
38 </servlet>
39
40 <servlet-mapping>
41 <servlet-name>ideawu</servlet-name>
42 <url-pattern>*.do</url-pattern>
43 </servlet-mapping>
44
45 <welcome-file-list>
46 <welcome-file>index.jsp</welcome-file>
47 <welcome-file>index.html</welcome-file>
48 </welcome-file-list>
49
50 <jsp-config>
51 <taglib>
52 <taglib-uri>http://java.sun.com/jsp/jstl |