如何搭建Spring MVC 框架---Hello World
传送门
现在的Web框架基本都采用了MVC(model-view-Controller)设计模式,其中,Servlet和Filter都可以充当控制器.Spring MVC采用一个Servlet作为控制器,而Struts2则采用的Filter作为控制器.
对于他们的区别我在这里不多赘述,可以参见这篇文章SpringMVC与Struts2区别与比较总结
Spring MVC的搭建可以通过Java代码的方式(在《Spring 实战》一书中有详细讲解),也可以通过配置文件的方式,这里讲到的是运用配置文件的方式进行搭建.
这是一个毫无技术含量的最简单例子
使用工具:
- idea
- maven
当然啦~如果你不想使用Maven可以直接跳过前两步
Demo结构:
首先需要搭建一个Web项目
添加依赖
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-expression</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>RELEASE</version>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
配置classpath
<build>
    <finalName>demo</finalName>
    <!--配置Classpath-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*xml</include>
          <include>**/*.properties</include>
        </includes>
      </resource>
    </resources>
  </build>
配置web.xml
<!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>
  <!--spring的配置文件-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!--Spring MVC必须的servlet,他会帮你把Spring的配置文件到application域中-->
  <servlet>
    <servlet-name>dispatcher-servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--Spring MVC的配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher-servlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>
配置applicationContext.xml
<context:component-scan base-package="com.geek"/>
配置dispatcher-servlet.xml
<!--启动Spring MVC的注解-->
<mvc:annotation-driven/>
<!--自动扫描包-->
<context:component-scan base-package="com.geek"/>
<!--视图解析器-->
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="suffix" value=".jsp"/>
</bean>
<mvc:annotation-driven/>  这句话非常关键!如果不写会导致@Controller等注解不能使用
TestController.java
@Controller
public class TestController {
    @Autowired
    private TestService service;
    @RequestMapping("/test")
    public String Test(String s, HttpServletRequest request){
        service.show();
        request.setAttribute("s",s);
        return "index";//由于前面配置了视图解析器,此处会跳转到index.jsp页面
    }
}
在这里使用了@Controller注解,逻辑上标志着这个类是一个控制器,让编程过程中更容易理解
其中的@RequestMapping("/test")指将这个url(localhost:8080/test)映射到此方法上,在Spring MVC中以一个方法为上下文进行拦截.
TestService.java
@Service
public class TestService {
    public void show(){
        System.out.println("success");
    }
}
index.jsp
<%@page pageEncoding="UTF-8" contentType="text/html"%>
<html>
<body>
<%
    String s = (String) request.getAttribute("s");
    out.print(s!=null?s:"hello");
%>
</body>
</html>
启动服务器输入  http://localhost:8080/test?s=123456
可以看到控制台打印success,index.jsp页面的显示由hello变为123456
这样,Spring MVC 的一个小Demo就算完成了,当然,这里面使用了Spring的自动装配,整体上非常的简单例子,动手试试吧~
如何搭建Spring MVC 框架---Hello World的更多相关文章
- 从零开始学 Java - 搭建 Spring MVC 框架
		没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ... 
- Spring MVC篇一、搭建Spring MVC框架
		本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij创建,配合maven管理.整体的目录结构如图: 其中ja ... 
- 十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
		我们已经将 IntelliJ IDEA 中的 Maven 项目的框架搭建完成.接着上文,在本文中,我们更近一步,利用 Tomcat 运行我们的 Web 项目. 如上图所示,我们进一步扩展了项目的结构, ... 
- Spring MVC框架搭建
		Spring MVC篇一.搭建Spring MVC框架 本项目旨在搭建一个简单的Spring MVC框架,了解Spring MVC的基础配置等内容. 一.项目结构 本项目使用idea intellij ... 
- spring mvc 框架搭建及详解
		现 在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不 ... 
- Spring MVC 框架搭建及具体解释
		如今主流的Web MVC框架除了Struts这个主力 外.其次就是Spring MVC了,因此这也是作为一名程序猿需要掌握的主流框架.框架选择多了.应对多变的需求和业务时,可实行的方案自然就多了. 只 ... 
- Spring MVC框架搭建及其详解
		现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ... 
- Spring MVC 框架的架包分析,功能作用,优点
		由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ... 
- 手写Spring MVC框架(二) 实现访问拦截功能
		前言 在上一篇文章中,我们手写了一个简单的mvc框架,今天我们要实现的功能点是:在Spring MVC框架基础上实现访问拦截功能. 先梳理一下需要实现的功能点: 搭建好Spring MVC基本框架: ... 
随机推荐
- MongoDB之Replica Set(复制集复制)
			MongoDB支持两种复制模式: 主从复制(Master/Slave) 复制集复制(Replica Set) 下面主要记录我在centos虚拟机上安装replica set,主要参考:http://d ... 
- 装饰器的修复wraps,偏函数partial 以及chain
			将被装饰的函数的一些属性值赋值给 装饰器函数,最终让属性的显示更符合我们的直觉. from functools import wraps def wapper(func): @wraps(func) ... 
- (转)如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐)
			如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐) 2013-09-10 16:01 2152人阅读 ... 
- linux系统下单网卡绑定多个IP地址方法
			说明: 操作系统:CentOS 6.2 IP地址:192.168.21.164 子网掩码:255.255.255.0 网关:192.168.21.2 问题: 现在要增加一个IP地址:192.168.2 ... 
- Lyft Level 5 Challenge 2018 - Elimination Round
			A. King Escape 签. #include <bits/stdc++.h> using namespace std; ], y[]; int f1(int X, int Y) { ... 
- Core Java 6
			p277~p279: 1.使用解耦合的 try/catch 和 try/finally 语句块可以提高代码的清晰度,并且会报告 finally 子句中出现的错误. 2.假设利用 return 语句从 ... 
- mongodb的分片(2)
			在上一片博客,详细说明了mongodb的分片搭建的详细过程:分片搭建 在这里会说一些分片的维护与操作! 在集群搭建完,我们使用了sh.status()查看分片之后的数据,如下: #连接的是mongos ... 
- 【异常记录(六)】vs文件乱码:文件加载,使用Unicode(UTF-8)编码加载文件xxx时,有些字节已用Unicode替换字符替换。保存该文件将不会保留原始文件内容。
			VS2013偶遇这种情况,页面汉字编码出现乱码. .... 按照网上查到的: 工具>选项>文本编辑器> 勾选了 然并卵,还是乱码... 其实炒鸡简单 用记事本打开另存为,选择 ... 
- shell 计时获取输入
			#!/bin/bash if read -t 5 -p "please enter your name:" name then echo "hello ... 
- 使用由 Intel MKL 支持的 R
			我们通常使用的 R 版本是单线程的,即只使用一个 CPU 线程运行所有 R 代码.这样的好处是运行模型比较简单且安全,但是它并没有利用多核计算.Microsoft R Open(MRO,https:/ ... 
