一、spring mvc基本配置
对于spring mvc的配置,如果是maven项目,只需要简单地加入spring mvc和Servlet的依赖就可以了。下面所说的配置,指的是没有使用maven的项目配置。

首先,新建一个web项目。在new->project->web->Dynamic Web Project,输入工程名即可。新建后的web项目结构如下:

之后,先导入spring Java包。spring下载地址为http://repo.springsource.org/libs-release-local/org/springframework/spring/。除此之外,还需导入commons-logging.jar文件,下载地址为http://download.csdn.net/download/readgo_xxg/5339124。必须要导入commons-logging.jar,不然会报错。导入Java包方式:直接将所有的Java包复制到WEB-INF下的lib文件夹下。
然后,配置web.xml文件。这个文件在创建项目时,就已经存在于WEB-INF文件夹下面了。基本配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>SpringMVCTest</display-name><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>  <welcome-file-list><welcome-file>index</welcome-file></welcome-file-list>
</web-app>

比较重要的一些配置:<servlet-name>springMvc</servlet-name>是定义服务名称,spring会自动去找名为springMvc-servlet.xml的配置文件,如果不存在,就会报错。<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>是引用DispatcherServlet控制器,关于DispatcherServlet的作用和工作原理可以参考这篇博客http://blog.csdn.net/kevin_zhai/article/details/52279160。
<url-pattern>/</url-pattern>是让后台控制器匹配URL请求。
最后,配置springMvc-servlet.xml文件。在WEB-INF下新建该文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">     <context:annotation-config/><context:component-scan base-package="com.test"></context:component-scan>
</beans>

这里面是最基本的配置,只定义了spring自动扫描的package路径。当spring容器启动时,会自动扫描com.test下带有@Component标注的类,并加载到spring容器中。关于spring自动装配Bean的内容可以参考这篇博客http://blog.csdn.net/kevin_zhai/article/details/52238575。
二、spring mvc实例代码
上面介绍了spring mvc的基本配置,下面就可以利用上面配置好的项目开始写实例了。
spring MVC后台代码一般包括三层,即Controller层,service层和dao层。Controller即控制器;service是业务层,具体逻辑业务的实现;dao层是底层与数据库直接交互的部分。在【Spring学习笔记四】-自动装配Bean http://blog.csdn.net/kevin_zhai/article/details/52238575这篇博客里,已经介绍了用@Component和@Autowired进行自动装配Bean,在spring MVC中,有三个与@Component作用相似的三个标注,分别是:@Controller,@Service和@Repository。它们的作用都是将类自动注入到spring容器中,不同之处在于:@Controller用于标注控制器,@Service用于标注业务层组件,@Repository用于标注数据访问组件。
1. controller代码

@Controller
public class GetMessageController {@Autowiredprivate GetMessageService getMessageService;@RequestMapping(value={"/getMessage"},method = {RequestMethod.GET})public ModelAndView getMessage() {ModelAndView mav = new ModelAndView("WEB-INF/HelloWorld.jsp");mav.addObject("message",getMessageService.getMessage());return mav;}
}

其中,@controller标注是把GetMessageController类自动加载到spring容器中,@Autowired标注是自动装配GetMessageService类型变量。@RequestMapping标注是用来处理请求地址映射的,它可以用到类或方法上。在这里,当我们在浏览器上访问localhost:端口号/项目/getMessage时,就可以访问到这个Controller了。mav是ModelAndView类型变量,会返回一个jsp页面,并把message变量值传递给前端页面。
2.Service代码

public interface GetMessageService {public String getMessage();
}
@Service
public class GetMessageServiceImpl implements GetMessageService{@Autowiredprivate GetMessageDao getMessageDao; @Overridepublic String getMessage() {return getMessageDao.getMessage();}
}

其中,GetMessage是一个接口,GetMessageServiceImpl是对接口的实现。@Service是把GetMessageServiceImpl类自动加载到Spring容器中,上面的Controller中就可以自动注入GetMessageServiceImpl类到getMessageService变量中。
3.dao层代码

public interface GetMessageDao {public String getMessage();
}
@Repository
public class GetMessageDaoImpl implements GetMessageDao{@Overridepublic String getMessage() {return "Hello World";}
}

其中,GetMessageDao是dao层接口,GetMessageDaoImpl是对接口的实现。
4.jsp代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Message : ${message}</h1>
</body>
</html>

前后端代码都写完之后,Spring项目结构如下:


三、spring mvc启动服务

新建tomcat服务器,把项目加载到本地服务器上,然后启动本地服务器。打开浏览器,在浏览器上输入以下网址:http://localhost:8058/SpringMVCTest/getMessage,其中,8058是tomcat端口号,SpringMVCTest是项目名称,getMessage是Controller中@RequestMapping的地址。出现如下所示页面,证明我们整个spring mvc项目启动成功了。


四、问题总结
下面说一下自己在配置项目过程中遇到的问题,供大家参考。
1. 一定要导入spring Java包时,导入commons-logging.jar。
2. Java包要复制到WEB-INF下的lib文件夹下,开始我是在根目录下新建的lib文件夹,将Java包复制过去的,结果出现DispatcherServlet类找不到的异常。
3. 配置servlert.xml时,一定要把扫描的包写对,不然spring无法自动装配Bean,网页访问时访问不到Controller,就会出现404错误。

【Spring学习笔记七】-Spring MVC基本配置和实例相关推荐

  1. spring学习笔记(spring概述和IOC)

    spring5 1.spring的概述 1.1.spring是什么 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的. Spring 的 ...

  2. Spring学习笔记 之 Spring<全>

    开始学习Spring全家桶 文章目录 1. IoC 定义 为什么叫控制反转? 实现 IoC 容器创建 bean 的两种⽅式 IoC DI 特殊字符的处理 Spring 中的bean创建类型 -- sc ...

  3. Spring学习笔记之Spring Web Flow

    Spring Web Flow 是Spring MVC 的扩展,它支持开发基于流程的应用程序.它将流程的定义与实现流程行为的类和视图分离开来. 1.配置Web Flow 在Spring MVC上下文定 ...

  4. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)

    http://blog.csdn.net/qq598535550/article/details/51703190 二.Spring整合mybatis其实是在mybatis的基础上实现Spring框架 ...

  5. spring学习笔记 -- day02 spring基础、IOC控制反转

    一:srping的介绍 1.spring的体系结构 2.spring资源 a.spring-framework-4.2.4.RELEASE:Spring Framework的官方发行包 b.sprin ...

  6. 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

    作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...

  7. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  8. Spring学习笔记之MyBatis

    系列文章目录 Spring学习笔记 之 Springhttps://blog.csdn.net/weixin_43985478/article/details/124411746?spm=1001.2 ...

  9. 【Spring学习笔记 九】Spring声明式事务管理实现机制

    什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...

  10. Java学习笔记-Day64 Spring 框架(二)

    Java学习笔记-Day64 Spring 框架(二) 一.控制反转IOC和依赖注入DI 1.控制反转IOC 2.依赖注入DI 3.Spring IOC容器 3.1.简介 3.2.实现容器 3.2.获 ...

最新文章

  1. (转载)(官网)UE4--Character
  2. 用户接口设计的20个原则
  3. Go语言竟成恶意软件的最爱!4年来Go编写的恶意软件飙增2000%,网友:这也能怪Go?...
  4. 远程访问mysql数据库_关于远程连接MySQL数据库的问题解决
  5. Qt Remote Object(QtRO)给指定的客户端发送消息
  6. 使用Platform Builder配置Windows CE操作系统
  7. 利用MS17-010渗透win7(64位)
  8. [mybatis]Mapper XML Files_CUD
  9. 关于磁盘爆满异常(Linux下已经删除文件继续占用空间问题)
  10. 修改firefox的默认缩放比
  11. 智能优化算法:探路者优化算法-附代码
  12. php 设置页面最大执行时间 set_time_limit max_execution_time
  13. Remoting在FX2.0中的新特性 (2)
  14. bt采集蜘蛛,开源版
  15. Linux下 文件或文件夹的复制(拷贝 cp)
  16. Tensorflow2.5(gpu)+Python3.9+Spyder5的平台搭建
  17. 不懂中医的才攻击中医
  18. ios python 越狱_iOS越狱--USB连接SSH
  19. AVFoundation 学习资源列表
  20. Fedora 14 root权限登录

热门文章

  1. 1213家中国厂商涌入拉斯维加斯!CES 2019最全预告在此...
  2. sprintf函数的用法linux,sprintf函数用法解析
  3. vsm什么意思_价值流程图VSM浅析
  4. adb最新版下载地址
  5. 大牛直播SDK-Windows推送端使用说明
  6. 程序员修炼之道——读序
  7. 数字电路实验 03 - | 数据选择器及其应用
  8. CurvySplines基础
  9. 连接linux工具Mtr,Linux/Windows MTR工具检测服务器性能详细方法
  10. 测试鼠标宏软件,Mini Mouse Macro(鼠标宏设置工具)