`
dj4307665
  • 浏览: 13508 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

初识SpringMVC

    博客分类:
  • Java
阅读更多

以前都是用Struts1 or Struts2的MVC,之前就一直想了解SpringMVC Annotation版的使用,于是今天到Spring的官网上搬弄了Jar下来(点这里进入下载),搭起了一个基本的框架。下面说一下SpringMVC框架搭建流程(使用版本Spring3.1 RC1)和基本使用

  1. 下载好Jar导入到Web工程的Lib下面,这是我用到的jar包


 

 2.  在web.xml加入如下代码,监听以什么路径结尾的请求,我这里是拦截.html结尾的

     <servlet>

	<servlet-name>spring</servlet-name>
	<servlet-class>
		org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>spring</servlet-name>
	<url-pattern>*.html</url-pattern>
</servlet-mapping>
 

 

 3. 根据你上面配置的<servlet-name>spring</servlet-name>中的值在WEB-INF目录下面创建spring-servlet.xml,那个值可以随便改,

改了以后创建对应的文件即可,只要符合*-servlet.xml即可。编辑此文件加入如下代码<?xml version="1.0" encoding="UTF-8" ?>

 

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	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.0.xsd">
	<!--  自动扫描bean,把作了注解的类转换为bean 	-->
	<context:component-scan base-package="com" />

	<!--  定义jdbc配置信息路径 	-->
	<context:property-placeholder location="/WEB-INF/jdbc.properties" />

	<!--  jdbcTemplate数据库操作类 -->
	<bean id="jdbcTemplate"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!--  数据源配置,使用c3p0数据库连接池 -->
	<bean id="dataSource"
		class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close" 
		p:driverClass="${app.jdbc.driverClassName}"
		p:jdbcUrl="${app.jdbc.url}" 
		p:user="${app.jdbc.username}"
		p:password="${app.jdbc.password}"
		p:acquireIncrement="5"
		p:idleConnectionTestPeriod="60"
		p:maxPoolSize="100"
		p:maxStatements="50" 
		p:minPoolSize="10" />
	<!--  定义事务管理 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
		p:dataSource-ref="dataSource" />
	<!--  启动Spring MVC的注解功能,完成请求和注解POJO的映射 	-->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
	<!--  处理Mutipart文件上次的bean 	-->
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
		p:defaultEncoding="utf-8" />
	<!--  对模型视图名称的解析,即在模型视图名称添加前后缀 	-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/"
		p:suffix=".jsp" />
</beans>
    

4. 加入数据库配置文件到WEB-INF目录

 

#test is databaseName.
app.jdbc.driverClassName=com.mysql.jdbc.Driver
app.jdbc.url=jdbc:mysql://localhost/test
app.jdbc.username=root
app.jdbc.password=******

 

 到这里框架搭建基本完成。由于我使用的Spring的JdbcTemplate对数据库进行的操作,这里就不需要在配置其他的信息。下面直接贴代码:

控制器Controller相当于Struts中的Action

 

package com.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.model.User;
import com.service.UserService;

/**
 * @author dongji
 * 控制器类,加上@Contorller即可,不需要继承其他任何类
 */
@Controller
public class UserController{
      
         //服务层借口,加此注解就可以注入进来
	@Resource(name = "uService")
	private UserService uService;

        //请求的路径
	@RequestMapping("/save")
	public String save(HttpServletRequest request, User u) {
		uService.save(u);
		String message = "Save Ok, Spring 3.0!";
		request.setAttribute("message", message);
		request.setAttribute("users", uService.findAll());
		// return new ModelAndView("hello", "message", message);
		return "hello";
	}

	@RequestMapping("/delete")
	public ModelAndView delete(HttpServletRequest request) {
		Integer id = Integer.parseInt(request.getParameter("id"));
		uService.delete(id);
		request.setAttribute("message", "您刚才删除了ID为"+id+"的人!!!");
		request.setAttribute("users", uService.findAll());
		return new ModelAndView("hello");
	}

}

 

    DAO层接口

 

package com.service;

import java.util.List;

import com.model.User;

public interface UserService {
	void save(User u);
	void delete(Integer id);
	List<User> findAll();
}

 

   DAO实现类

package com.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import com.model.User;
import com.service.UserService;

@Service("uService")
public class UserServiceImpl implements UserService {
	@Resource
	private JdbcTemplate jdbcTemplate;

	/**
	 * 玩数据库添加一条记录
	 * 
	 * @param u
	 *            用户
	 */
	public void save(User u) {
		jdbcTemplate.update("insert into user values(null,?)", u.getName());
	}

	/**
	 * 删除一个用户
	 * 
	 * @param id
	 *            用户id
	 */
	public void delete(Integer id) {
		jdbcTemplate.update("delete from user where id=?", id);
	}

	/**
	 * 查询所有用户信息
	 * 
	 * @return 所有用户的集合
	 */
	public List findAll() {
		return jdbcTemplate.queryForList("SELECT * FROM     `user`");
	}

}

     实体类

 

package com.model;
/**
 * 测试用户类
 * @author dongji
 *
 */
public class User{
	private int id;
	private String name;
       //.....省略setter and getter
}   
 

    到这里,一个简单的SpringMVC已经实现了,有什么意见大家尽力提哦

 

 

  • 大小: 3.7 KB
0
4
分享到:
评论
5 楼 peterchao_asch 2012-02-15  
先看再说 好好搞搞springmvc
4 楼 xiaoZ5919 2011-11-12  
漏掉事务配置
3 楼 ycssh 2011-11-11  
dj4307665 写道
ycssh 写道
我前段时间看了下springmvc,有个问题请教下楼主,你的后台验证是怎么实现的,springmvc好像只有针对model的验证,差不多就是针对数据库表的验证吧,不能针对请求的验证啊,比如我又一个User类,我在不同的场合需要不同的验证规则,我没有发现springmvc有这样的支持,有没有其他的办法。就是这个原因最终放弃了springmvc的使用,转而使用struts2了

不知道你说的model的验证是不是->使用Spring注解的方式实现服务器端表单验证。然后Spring还提供了Validator接口,为POJO提供针对具体类的验证


恩,我说的就是服务器端针对表单的验证,因为我提交的表单不一定就是对应后台的一个POJO类,而且即使是针对后台的POJO类,我不同的表单可能验证规则不一样,例如我又一个POJO类User,有属性private String name,用springmvc就是
public class User{
@NotNull
private String name;
}
而我一个表单的验证是要求不为空,另一个则没有这种需求用springmvc怎么处理。
总之就是说springmvc怎么实现服务器端的表单验证,而不是针对POJO类的验证。
2 楼 dj4307665 2011-11-11  
ycssh 写道
我前段时间看了下springmvc,有个问题请教下楼主,你的后台验证是怎么实现的,springmvc好像只有针对model的验证,差不多就是针对数据库表的验证吧,不能针对请求的验证啊,比如我又一个User类,我在不同的场合需要不同的验证规则,我没有发现springmvc有这样的支持,有没有其他的办法。就是这个原因最终放弃了springmvc的使用,转而使用struts2了

不知道你说的model的验证是不是->使用Spring注解的方式实现服务器端表单验证。然后Spring还提供了Validator接口,为POJO提供针对具体类的验证
1 楼 ycssh 2011-11-10  
我前段时间看了下springmvc,有个问题请教下楼主,你的后台验证是怎么实现的,springmvc好像只有针对model的验证,差不多就是针对数据库表的验证吧,不能针对请求的验证啊,比如我又一个User类,我在不同的场合需要不同的验证规则,我没有发现springmvc有这样的支持,有没有其他的办法。就是这个原因最终放弃了springmvc的使用,转而使用struts2了

相关推荐

    初识SpringMVC以及springmvc基本应用入门案例彩色PPT版本.pptx

    【SpringMVC简介】 SpringMVC 是一个基于 Java 实现的 Model-View-Controller (MVC) 模式的轻量级 Web 框架。它为开发者提供了简化 Web 应用程序开发的能力,使得在处理HTTP请求和响应时更加便捷和灵活。SpringMVC ...

    (第十一天)初识SpringMVC SSM框架的学习与应用-Java EE企业级应用开发学习记录

    本资源介绍了一个基于Spring MVC框架的Web应用项目,旨在帮助开发者和学习者了解和掌握Spring MVC的核心概念、组件以及如何构建Web应用程序。无论您是初学者还是有经验的开发者,这个资源都将为您提供有关Spring MVC...

    springMVC教程

    **初识 SpringMVC** 在 Web 开发领域,MVC 设计模式被广泛采用,它将业务逻辑(Model)、用户界面(View)和数据处理(Controller)分离,提高了代码的可维护性和可复用性。SpringMVC 提供了一套完善的解决方案,...

    SSM笔记-SpringMVC REST风格、基本标签初识

    **SpringMVC REST风格详解** REST(Representational State Transfer,表述性状态转移)是一种软件架构风格,用于设计网络应用程序,特别是在Web服务中广泛采用。在SpringMVC框架中,实现REST风格的接口可以让我们...

    Spring框架、SpringMVC框架、Maven高级(缺)、SpringBoot框架、MyBatis-Plus框架

    1.1 初识 Spring,我们了解到 Spring 是为了简化企业级 Java 应用程序的开发而设计的,它通过提供一种声明式编程模型,减少了代码量和耦合度。 1.2 Spring 系统架构主要包括四个主要模块:Core Container(核心容器...

    01Spring初识.pdf

    Spring框架是Java开发领域非常著名的开源框架,它的初识主要可以分为两个部分:框架的基本概念和Spring框架的设计理念。 首先,从框架的基本概念来看,它是由一系列类和接口组成的集合,这些类和接口协调工作以完成...

    SSM框架的学习与应用-Java EE企业级应用开发学习记录-(第六天)初识Spring框架

    本资源是一篇关于学习和应用SSM框架(Spring、SpringMVC、MyBatis)的学习记录系列文章中的第六天内容,主题为初识Spring框架。 在这一部分中,你将了解到Spring框架的基本概念和使用方法,并通过实例探讨了Spring ...

    初识MyBatis及基本应用彩色PPT版本.pptx

    学习MyBatis时,可以通过实际项目练习,结合SSM(Spring、SpringMVC、MyBatis)框架进行综合应用,提升开发效率。此外,还可以借助CSDN、SegmentFault、菜鸟教程等在线资源进行深入学习,并利用Markdown、思维导图等...

    Java项目之基于ssm框架的课程在线教育资源管理系统(1)(附源码).zip

    `readme.txt`通常会包含项目的基本信息、安装指南、运行环境要求和一些注意事项,是初识项目的重要参考资料。 `jspm4tlu5`可能是项目源码的某个部分,但由于文件名不明确,具体功能无法确定,需要实际解压查看。 ...

    baoxin-generator_11-35-40.zip

    4. `README.md`:这是项目介绍文件,通常包含项目的目的、安装指南、使用方法等信息,是初识项目的重要文档。 5. `pom.xml`:Maven项目对象模型(POM)文件,定义了项目的依赖、构建过程和其他元数据,是Maven项目的...

    基于SSM框架+mysql,采用分布式架构的移动电子商城项目源码.zip

    关于`README.md`文件,这通常包含项目的说明、安装指南、依赖项和运行步骤,是初识项目时的重要参考资料。根据描述,助教老师已经测试过这个项目,意味着它应该具备基本的运行和功能完整性。 标签中的"毕业设计...

    基于JSP+SSM的停车场管理系统项目实战(源码+说明).zip

    "readme.txt"通常包含了项目的基本介绍、安装部署步骤和运行环境要求,是初识项目的重要参考。"jspm73dk0"这个文件名可能是项目源码或编译后的类文件,具体功能需要进一步解压查看。 停车场管理系统的主要功能模块...

    项目二总结-詹迪1

    在项目中,由于初识JSON,可能在实现物料信息功能时出现了错误,但经过学习和修正,理解了正确使用JSON进行数据传递的方法。 **多表连接查询**:在数据库设计中,多表连接查询是处理复杂业务逻辑的关键。当需要从多...

    java缴费源码-opengis-lecture:opengis-讲座

    3.基于springMVC的项目搭建 4.postGIS空间库基本操作 5.geoserver基本操作 6.初识Geotools 7.OL中的Map和View 课程简介 李白有诗云“烟花三月下扬州”,辛弃疾有诗道“正值春光二三月”。可见三月是个好时光,告别二...

    java1000题基础百战程序员

    - **初识Java** - Java的历史和发展背景 - Java的特点:平台无关性、面向对象、安全性等 - Java开发环境的搭建:JDK安装与配置 - Hello World程序编写 - **数据类型和运算符** - Java的基本数据类型(整型、...

    大数据培训课程安排.pdf

    第五阶段: 初识⼤数据 1. 难易程度:三颗星 2. 课时量(技术知识点+阶段项⽬任务+综合能⼒):80课时 3. 主要技术包括:⼤数据前篇(什么是⼤数据,应⽤场景,如何学习⼤数据库,虚拟机概念和安装等)、Linux常见...

Global site tag (gtag.js) - Google Analytics