Hello Spring MVC

搭建一个最简单的Spring MVC的项目

1、准备开发环境与运行环境

1)开发环境

我用的是Myeclipse6.5/Tomcat6.0

2)运行环境

jre版本应该没什么要求,我用的是jre1.6

将spring-framework-3.1.1.RELEASE-with-docs.zip/dist/下的所有jar包拷贝到项目的WEB-INF/lib目录下;

需要添加Apache commons logging日志,此处使用的是commons.logging-1.1.1.jar

2、配置前端控制器

在web.xml中添加如下配置


<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
  <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
</web-app>


注:

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

它的值必须是一个整数,表示servlet应该被载入的顺序

当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

当值相同时,容器就会自己选择顺序来加载。

2)默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/ springmvc-servlet.xml。


3、配置HandlerMapping、HandlerAdapter

<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
 
<!-- 处理器 -->
<bean name="/hello" class="com.chc.controller.HelloWorldController"/>

注:DispatcherServlet会加载到springmvc-servlet.xml这个配置文件

1)HandlerMapping 映射处理器,根据url的/hello找到相应的处理器类,调用HandlerMapping类中的getHandler(HttpServletRequest request)方法返回一个

HandlerExecutionChain对象,HandlerExecutionChain对象包含一个处理器(即HelloWorldController)和若干个拦截器,返回的对象再交回给DispatcherServlet。

2)HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

处理器功能处理方法的调用:HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视

图名),交回给DispatcherServlet;

4、配置ViewResolver

在springmvc-servlet.xml中加入如下代码:

<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

注:refix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“/jsp/hello.jsp”;


5、实现controller接口的处理器

package com.chc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
       //1、收集参数、验证参数
       //2、绑定参数到命令对象
       //3、将命令对象传入业务对象进行业务处理
       //4、选择下一个页面
       ModelAndView mv = new ModelAndView();
       //添加模型数据 可以是任意的POJO对象
       mv.addObject("message", "Spring MVC,我来了");
       //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
       mv.setViewName("hello");
       return mv;
    }
}

注:

1) 实现controller接口的时候注意不要导错了包,现在大多数都用注解方式实现了,现在暂时用实现接口的方式,注解机制以后会整理。

ModelAndView:包含了视图要实现的模型数据和逻辑视图名;“mv.addObject("message", "Hello World!");”表示添加模型数据,此处可以是任意POJO对象;

“mv.setViewName("hello");”表示设置逻辑视图名为“hello”,视图解析器会将其解析为具体的视图,如前边的视图解析器InternalResourceViewResolver会将其解析

为/jsp/hello.jsp”。

6、视图页面 hello.jsp

<%@ 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>Hello World</title>
</head>
<body>
${message}
</body>
</html>

7、测试项目

启动项目,请求路径http://localhost:9090/SpringMVC/hello,页面显示出“Spring MVC,我来了”,证明例子搭建成功。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC是一种基于Java的Web框架,它使用了MVC(Model-View-Controller)的设计模式,可以帮助开发者更好地组织和管理Web应用程序。下面是一个简单的Spring MVC应用程序的演示: 1. 首先,需要在项目中添加Spring MVC的依赖。可以在Maven中添加以下依赖: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.9</version> </dependency> ``` 2. 创建一个控制器类,例如HelloController,使用@Controller注解声明该类是一个控制器,并使用@RequestMapping注解指定请求映射URL和请求方法。 ```java @Controller @RequestMapping("/hello") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String sayHello(ModelMap model) { model.addAttribute("message", "Hello Spring MVC!"); return "hello"; } } ``` 3. 创建一个视图文件,例如hello.jsp,用于显示数据。 ```html <html> <head> <title>Hello Spring MVC</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 4. 配置Spring MVCDispatcherServlet,可以在web.xml文件中添加以下配置: ```xml <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 5. 创建Spring MVC的配置文件,例如spring-mvc.xml,用于配置视图解析器和控制器映射。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" 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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <context:component-scan base-package="com.example"/> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> </beans> ``` 6. 运行应用程序,并在浏览器中访问http://localhost:8080/hello,应该可以看到“Hello Spring MVC!”的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值