`

springJdbc+springMVC和dwr以及servlet的整合

阅读更多

现在springMVC的整合吧

第一步:web.xml的配置

 

<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>/</url-pattern>
</servlet-mapping>

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>  

      dwr的配置()

 <servlet>
     <servlet-name>dwr-invoker</servlet-name>
   <servlet-class> org.directwebremoting.spring.DwrSpringServlet </servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

 

第二步:WEB-INF/spring-servlet.xml的配置

 

<?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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	   		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<!-- 定义一个视图解析器 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

</beans>

 

第三步:applicationContext.xml的配置

 

<?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:context="http://www.springframework.org/schema/context"
	xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" 
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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
	   		http://www.directwebremoting.org/schema/spring-dwr        
			http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd  
			http://www.springframework.org/schema/mvc 
			http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<!-- 激活spring的注解. -->
	<context:annotation-config />

	<!-- 扫描注解组件并且自动的注入spring beans中. 
	例如,他会扫描@Controller 和@Service下的文件.所以确保此base-package设置正确. -->
	<context:component-scan base-package="net.rytong" />

	<!-- 配置注解驱动的Spring MVC Controller 的编程模型.注:次标签只在 Spring MVC工作! -->
	     <mvc:annotation-driven />
	     <mvc:default-servlet-handler default-servlet-name="IndexServlet"/> 
	  
	  
	<!-- ********************************************** --> 
   	<!-- dwr启用 annotation 配置模式 -->
	<dwr:configuration>
	   <dwr:convert type="bean" class="net.rytong.entity.Person" />
	</dwr:configuration>
	<!-- pring容器中检查拥有@RemoteProxy 和 @RemoteMethod注解的类 -->
	<dwr:annotation-config />
	<!-- 开启debug -->
	<dwr:controller id="dwrController" debug="true" />
	
    <!-- ********************************************** --> 
	<!-- 导入jdbc的配置文件 -->
	<import resource="jdbc-context.xml" />
	
</beans>

 

第四步:数据源jdbc-context.xml的配置

 

<?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:tx="http://www.springframework.org/schema/tx"
       	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/tx 
			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
			http://www.springframework.org/schema/context
			http://www.springframework.org/schema/context/spring-context-3.0.xsd
	   		">
	<!-- <context:property-placeholder location="classpath:db.properties" /> -->
	<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
		<property name="driver" value="${jdbc.driverClassName}" />
		<property name="driverUrl" value="${jdbc.url}" />
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="maximumConnectionCount" value="300" />
		<property name="minimumConnectionCount" value="10" />
		<property name="prototypeCount" value="4" />
		<property name="maximumActiveTime" value="600000" />
		<property name="simultaneousBuildThrottle" value="5" />
		<property name="testBeforeUse" value="true" />
		<property name="houseKeepingTestSql" value="SELECT CURRENT_DATE" />
	</bean>
	<!-- 定义jdbc配置信息路径 -->
	<context:property-placeholder location="/WEB-INF/db.properties" />
   	<!-- 使用annotation定义事务 -->
	<tx:annotation-driven transaction-manager="transactionManager" />	
	<!-- 定义事务管理 -->
	<!-- See http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 
       			p:dataSource-ref="dataSource" />
  
</beans>

 dao的代码:

@Repository("personDao")
public class PersonDao {
	private SimpleJdbcTemplate jdbcTemplate;
	
	@Resource(name="dataSource")
	public void setDataSource(DataSource dataSource) {
	    this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
	}
	public List<Person> getAllPerson() {
		String sql = "select id, first_name, last_name, money from person";
		// Maps a SQL result to a Java object
		RowMapper<Person> mapper = new RowMapper<Person>() {  
	        public Person mapRow(ResultSet rs, int rowNum) throws SQLException {
	        	Person person = new Person();
	        	person.setId(rs.getInt("id"));
	        	person.setFirstName(rs.getString("first_name"));
	        	person.setLastName(rs.getString("last_name"));
	        	person.setMoney(rs.getDouble("money"));
	            return person;
	        }
	    };
		return jdbcTemplate.query(sql, mapper);
	}

}

  service中的代码:

@Service("personService")
@RemoteProxy(name="PersonService")
public class PersonService {
	
	protected static Logger logger = Logger.getLogger("service");
	
	@Autowired
	private PersonDao personDao;
	
	/**
	 *检索所有的Person
	 */
	@RemoteMethod
	public List<Person> getAll() {
		logger.debug("Retrieving all persons");
		System.out.println(personDao+"==========");
		return personDao.getAllPerson();
	}
}

 control中的代码:

 

@Controller
@RequestMapping("/main")
public class MainController {
	
protected static Logger logger = Logger.getLogger("controller");
	
	@Resource(name="personService")
	private PersonService personService;
	
	/**
	 *获得所有的Person并返回到指定JSP页面
	 * 
	 * @return the name of the JSP page
	 */
    @RequestMapping(value = "/persons.do", method = RequestMethod.GET)
    public String getPersons(Model model) {
    	logger.debug("Received request to show all persons");
    	
    	// 调用personService中的getAll获得所有的Person
    	List<Person> persons = personService.getAll();
    	
    	// 把Person装入一个指定的model
    	model.addAttribute("persons", persons);
    	
    	// 解析 /WEB-INF/jsp/personspage.jsp
    	return "personspage";
	}

 

要想servlet要spring容器来管理,在web.xml中 去掉springMVC配置 加上如下配置:

 

  <servlet>
    <servlet-name>UserLoginServlet</servlet-name>
    <servlet-class>net.rytong.servlet.ServletProxy</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UserLoginServlet</servlet-name>
    <url-pattern>/UserLoginServlet</url-pattern>
  </servlet-mapping>

 并加上这个代理类

@SuppressWarnings("serial")
public class ServletProxy extends  GenericServlet  {
	    private Servlet proxy;

	    @Override
	    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
	        proxy.service(req, res);
	    }

	    @Override
	    public void init() throws ServletException {
	        WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
	        System.out.println(getServletName()+"===============");
	        this.proxy = (Servlet) wac.getBean(getServletName());
	        proxy.init(getServletConfig());
	    }

}

 

具体代码下载:( 数据库是基于mysql,jar包管理是Maven  下载后报错请修改pom.xml)

 

分享到:
评论

相关推荐

    spring+springMvc+jdbc 简易框架整合

    Spring、SpringMVC和JDBC是Java...通过深入研究和实践这个简易项目,你可以对Spring、SpringMVC和JDBC的整合有一个全面的认识,并为进一步的Java Web开发打下坚实的基础。记得不断优化和改进代码,使其更加健壮和高效。

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...

    Spring+SpringMVC+Mybatis框架项目整合

    1. **配置环境**:首先确保安装了JDK、Maven(或Gradle)以及Tomcat等必要环境,并在项目中引入Spring、SpringMVC和Mybatis的依赖库。 2. **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),...

    Spring+SpringMVC+Mybatis框架整合例子(SSM)

    1. **引入依赖**:在项目中添加Spring、SpringMVC和Mybatis的依赖库,通常通过Maven或Gradle构建工具来管理。 2. **配置Spring**:创建Spring的配置文件,定义Bean的生命周期和依赖关系,包括数据源、...

    Spring+SpringMVC+Mybatis框架整合例子——亲测可用.zip

    SSM框架整合是Java开发中常见的技术栈,包括Spring、SpringMVC和Mybatis三个核心组件。这个压缩包提供了一个已经验证过的整合示例,帮助开发者理解和实践这三大框架的协同工作。 首先,Spring框架是Java企业级应用...

    idea工具创建的Spring+SpringMVC+Hibernate+maven项目

    标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...

    Spring+SpringMVC+Mybatis资源课件

    “3.1 Spring框架.pptx”和“3.2 Spring应用 .pptx”则可能详细讲解了Spring框架的核心组件和实际应用场景,比如AOP在事务管理中的应用,以及Spring与其他技术(如JDBC、Hibernate)的集成。 总体来说,这个资源包...

    jquery+springmvc+springjdbc+sprngquartz整合java项目

    **jQuery + SpringMVC + SpringJDBC + SpringQuartz 整合Java项目详解** 在现代Web开发中,jQuery、SpringMVC、SpringJDBC和SpringQuartz是四个关键的组件,它们分别负责前端交互、后端MVC架构、数据库操作和任务...

    spring+springmvc+mybatis+bootstrap整合案例

    "spring+springmvc+mybatis+bootstrap整合案例"是一个专门为初学者设计的项目,旨在帮助他们快速理解和掌握这四者如何协同工作。 首先,Spring是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切...

    mybatis3+spring+springMVC4整合jar包.rar

    标题 "mybatis3+spring+springMVC4整合jar包.rar" 描述的是一个整合了MyBatis 3、Spring 4 和 Spring MVC 4 的项目压缩包。这个压缩包通常用于快速搭建一个基于Java的Web开发环境,尤其是用于处理数据库操作和前端...

    spring3+springMVC3+springJDBC3+jQuery easyui的运行环境

    通过Spring JDBC,开发者可以使用模板方法(如JdbcTemplate或NamedParameterJdbcTemplate)来执行SQL语句,这些模板类会自动处理资源的打开和关闭,以及异常处理,使代码更加简洁且易于测试。此外,Spring JDBC还...

    Spring+SpringMVC+Mybatis框架整合源码

    标题中的“Spring+SpringMVC+Mybatis框架整合源码”指的是一个基于Java的Web开发项目,它结合了三个主流的开源框架:Spring、SpringMVC和Mybatis,以实现高效且灵活的企业级应用开发。这三种框架在Java世界中扮演着...

    spring+springmvc+springjdbc+redis

    标题中的"spring+springmvc+springjdbc+redis"是一个典型的Java Web开发技术组合,涵盖了Spring框架的核心组件,Spring MVC作为Web层的处理框架,Spring JDBC用于数据库操作,以及Redis作为高速缓存系统。...

    spring+springmvc+mybatis

    将Spring、SpringMVC和MyBatis整合在一起,可以构建出高效、稳定的Web应用程序。首先,Spring作为基础框架,负责整个应用的上下文管理,包括Bean的创建和管理。然后,SpringMVC作为Web层,处理用户请求,调用业务...

    SSM(Spring+springmvc+mybatis)项目实例.zip

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,它将Spring的核心容器、Spring MVC作为视图控制器以及MyBatis作为持久层框架集成在一起,为开发者提供了一种高效且灵活的开发方式。...

    SSM框架-详细整合教程(Spring+SpringMVC+MyBatis).pdf

    以下是关于这三个框架的详细解释和整合步骤: 1. **Spring框架** - Spring是一个轻量级的Java开发框架,最初由Rod Johnson提出,旨在简化企业级应用的复杂性。它通过控制反转(IoC)和面向切面编程(AOP)来管理...

    spring mvc + spring + hibernate 全注解整合开发视频教程 11

    在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...

    spring+springmvc+mybatis的整合

    这里就要导入mybatis和spring的整合包了,这里sqlsession中也要导入mybatis的配置文件 2.6 spring-bean 配置mapper自动扫描 MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类), ...

    Spring+SpringMVC+Mybatis框架整合

    Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 **SSM...

Global site tag (gtag.js) - Google Analytics