第一个Spring MVC 入门程序

1.增加 Spring 的支持

    为了让 web 应用具有 Spring 支持的功能,将 spring-framework-4.2.0.R3ELEASE 解压文件夹下的 libs 文件夹下所有 Spring 框架的 class 文件的 JAR 包和 Spring 所依赖的 commons-logging-1.2.jar 复制到 Web 应用的 lib 文件夹下。

2.配置前端控制器 DispatcherServlet

  找到 web.xml 文件节点,编辑该文件,配置 Spring MVC 的前端控制器 DispatcherServlet。配置信息如下:  

<?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" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<!-- 定义Spring MVC 前端控制器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>

</init-param>

                <!-- 在 Web 应用启动时立即加载 Servlet -->

                <load-on-startup>1</load-on-startup>

</servlet>

        <!-- 让 Spring MVC 的前端控制器拦截所有的请求-->

<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

3.配置 Spring MVC 的 Controller

接下来是 Spring MVC 的配置文件,配置信息如下:

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:context="http://www.springframework.org/schema/context"
     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
     xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  <!-- 配置 Handle,映射 "/hello" 请求-->
<bean name="/hello" class="org.rjxh.www.controller.HelloController" />
<!-- 处理器映射器将 bean 的 name 作为 url 进行查找,需要在配置 Handler 时指定 name (即 url) -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- SimpleControllerHandlerAdapter 是一个处理器适配器,所有处理适配器都要实现 HandlerAdapter 接口 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

spring-config.xml 文件声明了 HelloController 业务控制器类,并将其映射到 /hello 请求。

此处还配置了一个处理器适配器 BeanNameUrlHandlerMapping,这样可以以 Bean 的名称作为 url 进行查找;同时配置了处理器适配器 SimpleControllerHandlerAdapter,来完成对 HelloController 类的 handleRequest 方法的调用;最后配置了视图解析器 InternalResourceViewResolver 来解析视图,将 View 呈现给用户。

4.Controller 类的实现

public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
//创建准备返回的 ModelAndView 对象,该对象通常包含了返回视图名、模型的名称以及模型对象
ModelAndView mv = new ModelAndView();
//添加模型数据,可以是任意的 POJO 对象
mv.addObject("message","Hello World!");
//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("/WEB-INF/content/welcome.jsp");
//返回 ModelAndView 对象
return mv;
}
}

HelloController 是一个实现 Controller 接口的控制器,它可以处理一个单一的请求动作。handleRequest 是 Controller 接口必须实现的方法,Controller 调用该方法来处理请求。该方法的参数是对应请求的 HttpServletRequest 和 HttpServletResponse,该方法必须返回一个包含视图名或模型的 ModelAndView 对象

5.View 页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 页面可以访问 Controller 传递出来的 message -->
${requestScope.message }
</body>
</html>

6.测

成功访问。

猜你喜欢

转载自blog.csdn.net/zhichunqi/article/details/79937261