Spring 3.0 MVC入门:配置与控制器实现
下载需积分: 3 | DOCX格式 | 19KB |
更新于2024-09-25
| 92 浏览量 | 举报
"Spring 3.0 MVC入门教程详解"
在Spring框架的版本3.0.5 Release中,Spring MVC提供了一种强大且灵活的Web应用程序开发模型,使得初学者能够更好地理解和快速上手。本文将带你通过一个简单的例子,了解如何配置和使用Spring MVC的基本组件。
首先,确保在项目中添加必要的依赖库。Spring 3.0 MVC主要依赖于以下几个包:
1. aop:面向切面编程(AOP),用于实现模块间的解耦和责任分离。
2. asm:字节码操作工具包,用于动态代理和元数据增强。
3. core:Spring的核心框架,包括IoC容器、依赖注入等。
4. context:Spring的应用上下文管理,包括配置文件解析和Bean管理。
5. web:Spring Web模块,提供对HTTP请求处理的支持。
在项目的WEB-INF目录下,创建`web.xml`文件,这是Spring MVC的部署描述符,用于配置Servlet和Spring MVC的处理器映射器(DispatcherServlet)。以下是基本的`web.xml`配置片段:
```xml
<web-app>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
```
接下来,创建`WEB-INF/springmvc-servlet.xml`文件,这是Spring MVC的核心配置文件,定义了控制器(Controller)、视图解析器(ViewResolver)以及任何其他自定义配置。例如:
```xml
<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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 启动Spring MVC -->
<mvc:annotation-driven />
<!-- 定义一个控制器 -->
<bean class="com.example.HelloController" />
<!-- 视图解析器配置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
```
`HelloController.java`类是实际处理HTTP请求的控制器,它继承自`org.springframework.web.bind.annotation.Controller`并实现了`RequestMapping`注解。在这个例子中,我们创建了一个名为`helloWorld`的方法,该方法接收`/student.do`路径的请求:
```java
@Controller
public class HelloController {
@RequestMapping(value = "/student.do")
public ModelAndView helloWorld(HttpServletRequest request) {
String id = request.getParameter("id");
System.out.println("id: " + id);
String name = request.getParameter("name");
Map<String, Object> map = new HashMap<>();
map.put("one", "one");
map.put("two", "two");
map.put("three", "two");
ModelAndView modelAndView = new ModelAndView("helloWorld");
modelAndView.addObject("result", map);
modelAndView.addObject("answer", "weichao");
return modelAndView;
}
}
```
最后,在`WEB-INF/views/helloWorld.jsp`中,我们处理响应视图,通过JSP的EL表达式或`<c:out>`标签获取`result`和`answer`对象的值:
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
my name: <c:out value="${result.one}" /> <!-- 获取result中的one键值 -->
<!-- ... -->
</body>
```
总结起来,学习Spring 3.0 MVC的关键步骤包括添加依赖库、配置Servlet和Spring MVC容器、定义和实现Controller,以及配置视图解析。通过这个基础示例,你将了解到如何使用Spring MVC处理HTTP请求、注入参数和渲染视图。随着对框架深入理解,你可以进一步探索更高级的主题,如异常处理、AOP、表单验证等。
相关推荐










boss_jing
- 粉丝: 12
最新资源
- 西北工业大学卢京潮《自动控制原理》答案解析
- 国际酒店预订HTML网站模板介绍
- 体验更快速清洁的PC:Advanced SystemCare 10 Beta版
- 汽车美容店管理系统:毕业设计与数据库整合
- Tesseract Docker教程:构建古希腊语OCR训练数据
- 探索Android全景图片实现与openGL技术
- 测试文件下载中的空字节与模式检查
- SearchBar-crx插件:Chrome浏览器下的高效搜索工具
- Win98与Win2000桌面透明效果教程
- iOS自定义TabBar实现上下联动导航
- 51单片机常用函数集及其驱动实现
- 中科大834软件工程历年考研真题解析(1995-2016)
- Bootstrap遮罩层实现方法详解
- 掌握PopupViewController:实现视图控制器的覆盖与弹出
- 酷Q机器人软件深度解析:群管理与自动聊天功能
- 提升效率的Qwik Search-crx插件:快速切换搜索引擎