文档章节

eclipse 创建一个 Spring MVC HelloWorld 工程

KuangCaibao
 KuangCaibao
发布于 2015/04/22 20:24
字数 702
阅读 199
收藏 0

1. 建立一个空的Maven Javaweb工程

参考  http://my.oschina.net/kuangcaibao/blog/400506

2. 引入Spring MVC框架

在 pom.xml 文件中添加依赖项,使其支持Spring MVC

...
<dependencies>
  ...
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.1.6.RELEASE</version>
  </dependency>
  ...
</dependencies>

这里的依赖版本可以在   search.maven.org 这个仓库中去查找。

3. 配置 web.xml 文件

目的是让所有的请求URL,能够转发到对应的 Controller 上去执行。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  
  <servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

这里将所有的URL请求都转发到 helloworld Servlet 上去处理,而这个名称为 helloworld 的 Servlet 对应的 class 是 Spring 框架自带的 DispatcherServlet 类。

load-on-startup 的值非0,表示在这个web程序启动的时候就初始化了这个Servlet类。(没有验证)

4. 实现 HelloWorldController 这个 Controller 类

// HelloWorldController.java

package 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 request,
			HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		
		ModelAndView mv = new ModelAndView();
		
		mv.addObject("message", "hello world!");
		
		mv.setViewName("hello");
		
		return mv;
	}
}

这里可以看到,我们的 HelloWorldController 需要实现 Controller 接口中的 handlerRequest 方法,返回一个 ModelAndView 类。初步看来这是一个模板类。到这里我们有了处理的Controller,那么怎样将这个Controller绑定到对应的URL上呢?

5. 配置 helloworld-servlet.xml 文件

这个Servlet的配置文件的命名规则是 [servlet名称]-servlet.xml, 放置的地址为  /WEB-INF/

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">

    <!--
       这部分定义的是我们的模板处理类,这里可以看到 ViewClass 是 JstlView
       preifx 定义了读取模板的前缀地址
       suffix 定义了模板文件的后缀名
       
       这里解析的是 jsp 文件
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
    </bean>
    
    <!--
        这2个配置就是配置Spring框架的默认流程
    -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
    
    <!-- 
        处理器
        这里就是配置 URL -- Controller 的地方  
    -->
    <bean name="/hello" class="controller.HelloWorldController" />
</beans>

上述完成后,在 eclipse 中 Maven install,后在 Tomcat 上运行。输入  127.0.0.1:8080/spring-helloworld/hello, 注意这里的 spring-helloworld 是我在 eclipse 中建立的工程名,在Tomcat中运行的时候,根地址默认是工程名。显示的结果

// hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World</title>
</head>
<body>
${message }
</body>
</html>

可以看到模板解析失败了,这个问题需要解决,网上的说法是将 jstl.jar  standard.jar 放到 WEB-INF/lib下,就行,但是试了不成功,不知道maven中的依赖是怎样的???

© 著作权归作者所有

上一篇: java - 类
下一篇: Java - 反射
KuangCaibao
粉丝 2
博文 21
码字总数 10699
作品 0
武汉
程序员
私信 提问
(二).SpringMVC 学习-SpringMVC Hello World!

开发工具:Eclipse,maven 数据库:MySql; 运行环境:TomCat; JDK:JDK 1.7; 项目工程为:Dynamic Web Project; 至于如何创建maven 项目可参考:http://www.cnblogs.com/candle806/p/3439...

hapier
2016/07/15
116
0
实现Spring 4 MVC HelloWorld Tutorial – Full XML Example

参考链接 http://websystique.com/springmvc/spring-4-mvc-helloworld-tutorial-full-example/ 环境: Eclipse Java EE IDE for Web Developers. Version: Neon Release (4.6.0) Build id: ......

andrew810810
2016/09/07
10
0
不用web.xml,而使用java类配置SpringMVC

不用web.xml,而使用java类配置SpringMVC DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于...

浅色夏墨
2018/07/31
0
0
第7章—SpringMVC高级技术—不用web.xml,而使用java类配置SpringMVC

不用web.xml,而使用java类配置SpringMVC DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于...

浅色夏墨
2018/08/01
0
0
聊聊Spring boot2.X开发环境搭建和基本开发

对Spring Boot的开发环境进行搭建,并对它的特点做进一步的了解,才能更好地对Spring Boot有更深入的介绍。但是无论如何都需要先来搭建Spring Boot的工程。 搭建Spring Boot开发环境 使用Spr...

异步社区
2018/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

uni app 零基础小白到项目实战

$emit 子组件传给父组件$ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http'const now = Date.now || function() { return new Date().getTime......

达达前端小酒馆
28分钟前
7
0
Tomcat是如何实现异步Servlet的

前言 通过我之前的Tomcat系列文章,相信看我博客的同学对Tomcat应该有一个比较清晰的了解了,在前几篇博客我们讨论了Tomcat在SpringBoot框架中是如何启动的,讨论了Tomcat的内部组件是如何设...

木木匠
52分钟前
28
0
mysql中间件分享(Mysql-prxoy,Atlas,DBProxy,Amoeba,cobar,TDDL)

hello 各位小伙伴大家好,我是小栈君,这期我们分享关于mysql中间件的研究,也就是数据层的读写分离和负载均衡,希望能够在实际的应用中能够帮助到各位小伙伴。 下期我们将继续分享go语言的系...

IT干货栈
今天
10
0
OSChina 周一乱弹 —— 人生,还真是到处是意外

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享lil peep的单曲《High School》 《High School》- lil peep 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
892
13
Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部