关闭

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

标签: spring mvc
1597人阅读 评论(0) 收藏 举报
分类:
一、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.xsd
    http://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 {
	@Autowired
	private 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{
	@Autowired
	private GetMessageDao getMessageDao; 
	@Override
	public 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{
	@Override
	public 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错误。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

SpringMVC最基础配置

SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用。SpriingMVC不是太难,学习成本不高,现...
  • clj198606061111
  • clj198606061111
  • 2014-03-04 23:23
  • 47945

【Spring】Spring MVC原理及配置详解

【Spring】Spring MVC原理及配置1.Spring MVC概述:Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-04-27 10:14
  • 156740

玩转Spring MVC(三)----spring基本配置文件

这篇文章总结一下spring mvc的基本配置,首先贴一张我的项目的目录截图,有一些多余的文件,大家不必在意: 下面这张图是spring基本配置会用到的一些包都放在lib文件里: 接下来是we...
  • u012116457
  • u012116457
  • 2015-02-05 15:10
  • 22256

Spring MVC配置介绍

一、Spring MVC 纵览Spring MVC就是Spring框架对MVC设计模式的实现,通过Spring MVC ,我们可以快速的构建灵活、松耦合的web服务。再具体介绍Spring MV...
  • suifeng3051
  • suifeng3051
  • 2016-06-06 18:56
  • 5061

SpringMVC配置

SpringMVC学习笔记---- 一、SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml...
  • wenxingchen
  • wenxingchen
  • 2017-12-17 14:49
  • 52

spring3 mvc系列一:架构基本配置(注解版)

小弟新学spring3mvc,大虾请绕道。 开发环境如下: OS:windows IDE:Eclipse3.7.2 第一步,新建Web工程: 第二步,添加springfram...
  • hankaibo
  • hankaibo
  • 2012-02-07 10:48
  • 90424

Spring MVC 基本配置

Spring MVC的定制配置需要我们的配置类继承WebMvcConfigurerAdapter类(Adapter适配器),并在此类加上@EnableWebMvc注解,来开启对Spring MVC的配...
  • xiaolyuh123
  • xiaolyuh123
  • 2017-03-31 17:48
  • 453

Spring 4 学习笔记7:MVC 配置(JAVA方式)

Spring MVC Java 配置方式介绍,使用 Servlet 3.0 支持的 Java 配置来配置 web 应用程序。
  • w1196726224
  • w1196726224
  • 2016-09-28 07:17
  • 4757

spring mvc配置过程

开发spring工程建议安装spring tools sutite 新建一个j2ee工程,在其中导入如下包 commons-logging-1.1.1.jar spring-aop-4....
  • u011403655
  • u011403655
  • 2015-03-23 22:05
  • 1002

SpringMVC配置实例

一、SpringMVC的优势1.角色划分:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model...
  • xiaoxsen
  • xiaoxsen
  • 2017-08-18 20:31
  • 401
    个人资料
    • 访问:402303次
    • 积分:4693
    • 等级:
    • 排名:第7185名
    • 原创:106篇
    • 转载:4篇
    • 译文:0篇
    • 评论:27条
    博客专栏
    最新评论