配置web.xml

  1. <?
  2. xml version="1.0" encoding="UTF-8"?>
  3. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns="http://java.sun.com/xml/ns/javaee"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6. id="WebApp_ID" version="3.0">
  7. <display-name>myweb</display-name>
  8. <welcome-file-list>
  9. <welcome-file>/WEB-INF/jsp/register.jsp</welcome-file>
  10. <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
  11. </welcome-file-list>
  12. <!-- 载入全部的配置文件 -->
  13. <context-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>classpath*:config/spring-*.xml</param-value>
  16. </context-param>
  17. <!-- 配置Spring监听 -->
  18. <listener>
  19. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  20. </listener>
  21. <!-- 配置字符集 -->
  22. <filter>
  23. <filter-name>encodingFilter</filter-name>
  24. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  25. <init-param>
  26. <param-name>encoding</param-name>
  27. <param-value>UTF-8</param-value>
  28. </init-param>
  29. <init-param>
  30. <param-name>forceEncoding</param-name>
  31. <param-value>true</param-value>
  32. </init-param>
  33. </filter>
  34. <filter-mapping>
  35. <filter-name>encodingFilter</filter-name>
  36. <url-pattern>/</url-pattern>
  37. <!-- 配置Session -->
  38. <filter>
  39. <filter-name>openSession</filter-name>
  40. <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
  41. <init-param>
  42. <param-name>singleSession</param-name>
  43. <param-value>true</param-value>
  44. </init-param>
  45. <init-param>
  46. <param-name>flushMode</param-name>
  47. <param-value>AUTO</param-value>
  48. </init-param>
  49. </filter>
  50. <filter-mapping>
  51. <filter-name>openSession</filter-name>
  52. <url-pattern>/</url-pattern>
  53. </filter-mapping>
  54. <!-- 配置SpringMVC -->
  55. <servlet>
  56. <description>myweb</description>
  57. <display-name>myweb</display-name>
  58. <servlet-name>springMVC</servlet-name>
  59. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  60. <init-param>
  61. <param-name>contextConfigLocation</param-name>
  62. <param-value>classpath*:config/spring-mvc.xml</param-value>
  63. </init-param>
  64. <load-on-startup>1</load-on-startup>
  65. </servlet>
  66. <servlet-mapping>
  67. <servlet-name>springMVC</servlet-name>
  68. <url-pattern>/</url-pattern>
  69. </servlet-mapping>
  70. </web-app>

SpringMVC中Bean的配置spring-mvc.xml

  1. <?
  2. xml version="1.0" encoding="UTF-8"?>
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  15. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  16. <!-- 开启Spring MVC注解 -->
  17. <mvc:annotation-driven />
  18. <!-- 处理静态资源 -->
  19. <mvc:resources location="/resources" mapping="/resources/**" />
  20. <!-- 打开Spring的Annotation支持 -->
  21. <context:annotation-config />
  22. <!-- 注解扫描包 -->
  23. <context:component-scan base-package="com.myweb.controller" />
  24. <context:component-scan base-package="com.myweb.dao.imp" />
  25. <context:component-scan base-package="com.myweb.service.imp" />
  26. <!-- 配置SessionFactory -->
  27. <bean id="sessionFactory"
  28. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  29. <!-- <property name="dataSource" ref="dataSource" /> -->
  30. <property name="configLocation" value="classpath:config/hibernate.cfg.xml" />
  31. <property name="packagesToScan" value="com.myweb.entity" />
  32. </bean>
  33. <!-- 配置Dao要注入的hibernateTemplate -->
  34. <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
  35. <property name="sessionFactory" ref="sessionFactory" />
  36. </bean>
  37. <!-- 配置Spring的事务处理 -->
  38. <!-- 创建事务管理器 -->
  39. <bean id="txManager"
  40. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  41. <property name="sessionFactory" ref="sessionFactory" />
  42. </bean>
  43. <!-- 配置AOP。Spring是通过AOP来进行事务管理的 -->
  44. <aop:config>
  45. <!-- 设置pointCut表示哪些方法要增加事务处理 -->
  46. <!-- 下面的事务是声明在DAO中,可是通常都会在Service来处理多个业务对象逻辑的关系,注入删除,更新等,此时假设在运行了一个步骤之后抛出异常
  47. 就会导致数据不完整,所以事务不应该在DAO层处理,而应该在service。这也就是Spring所提供的一个很方便的工具。声明式事务 -->
  48. <aop:pointcut id="allMethods" expression="execution(* com.myweb.service.*.*(..))" />
  49. <!-- 通过advisor来确定详细要增加事务控制的方法 -->
  50. <aop:advisor advice-ref="txAdvice" pointcut-ref="allMethods" />
  51. </aop:config>
  52. <!-- 配置哪些方法要增加事务控制 -->
  53. <tx:advice id="txAdvice" transaction-manager="txManager">
  54. <tx:attributes>
  55. <!-- 让全部的方法都增加事务管理,为了提高效率。能够把一些查询之类的方法设置为仅仅读的事务 -->
  56. <tx:method name="*" propagation="REQUIRED" read-only="true" />
  57. <!-- 下面方法都是可能设计改动的方法。就无法设置为仅仅读 -->
  58. <tx:method name="add*" propagation="REQUIRED" />
  59. <tx:method name="del*" propagation="REQUIRED" />
  60. <tx:method name="update*" propagation="REQUIRED" />
  61. <tx:method name="save*" propagation="REQUIRED" />
  62. </tx:attributes>
  63. </tx:advice>
  64. <!-- 开启事务注解 -->
  65. <tx:annotation-driven />
  66. <!-- 默认的视图解析器ViewResolver -->
  67. <bean id="defaultViewResolver"
  68. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  69. <property name="prefix" value="/WEB-INF/jsp/" />
  70. <property name="suffix" value=".jsp" />
  71. </bean>
  72. </beans>

Hibernate的配置hibernate.cfg.xml

  1. <?
  2. xml version="1.0" encoding="UTF-8"?
  3. >
  4. <!DOCTYPE hibernate-configuration PUBLIC
  5. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  6. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  7. <hibernate-configuration>
  8. <session-factory>
  9. <property name="hibernate.dialect">
  10. org.hibernate.dialect.MySQLDialect
  11. </property>
  12. <property name="hibernate.connection.driver_class">
  13. com.mysql.jdbc.Driver
  14. </property>
  15. <property name="hibernate.connection.url">
  16. jdbc:mysql://localhost/myweb
  17. </property>
  18. <property name="hibernate.connection.username">
  19. root
  20. </property>
  21. <property name="hibernate.connection.password">
  22. jiangyu
  23. </property>
  24. <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
  25. <!-- ddl语句自己主动建表 -->
  26. <property name="hbm2ddl.auto">update</property>
  27. <property name="show_sql">true</property>
  28. <property name="format_sql">true</property>
  29. <property name="jdbc.fetch_size">50</property>
  30. <property name="jdbc.batch_size">30</property>
  31. <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
  32. <property name="hibernate.c3p0.acquireRetryAttempts">30</property>
  33. <property name="hibernate.c3p0.acquireIncrement">2</property>
  34. <property name="hibernate.c3p0.checkoutTimeout">30000</property>
  35. <property name="hibernate.c3p0.idleConnectionTestPeriod">120</property>
  36. <property name="hibernate.c3p0.maxIdleTime">180</property>
  37. <property name="hibernate.c3p0.initialPoolSize">3</property>
  38. <property name="hibernate.c3p0.maxPoolSize">50</property>
  39. <property name="hibernate.c3p0.minPoolSize">1</property>
  40. <property name="hibernate.c3p0.maxStatements">0</property>
  41. <!-- XML配置映射关系 <mapping resource="Employee.hbm.xml" /> -->
  42. <!-- 注冊ORM映射文件 -->
  43. <!-- spring不起作用 <mapping package="com.myweb.entity"/> -->
  44. </session-factory>
  45. </hibernate-configuration>

实体层

  1. package com.myweb.entity;
  2. import java.io.Serializable;
  3. import javax.persistence.Column;
  4. import javax.persistence.Entity;
  5. import javax.persistence.GeneratedValue;
  6. import javax.persistence.GenerationType;
  7. import javax.persistence.Id;
  8. import javax.persistence.Table;
  9. @Entity
  10. @Table(name = "w_user")
  11. public class User implements Serializable {
  12. private static final long serialVersionUID = 1L;
  13. @Id
  14. @Column(name = "user_id")
  15. @GeneratedValue(strategy = GenerationType.IDENTITY)
  16. private Integer id;
  17. @Column(length = 50)
  18. private String username;
  19. @Column(length = 20)
  20. private String password;
  21. public Integer getId() {
  22. return id;
  23. }
  24. public void setId(Integer id) {
  25. this.id = id;
  26. }
  27. public String getUsername() {
  28. return username;
  29. }
  30. public void setUsername(String username) {
  31. this.username = username;
  32. }
  33. public String getPassword() {
  34. return password;
  35. }
  36. public void setPassword(String password) {
  37. this.password = password;
  38. }
  39. }

数据訪问层(DAO层)

接口:

  1. package com.myweb.dao;
  2. import com.myweb.entity.User;
  3. public interface UserDao {
  4. User save(User user);
  5. }

实现:

  1. package com.myweb.dao.imp;
  2. import javax.inject.Inject;
  3. import org.springframework.orm.hibernate4.HibernateTemplate;
  4. import org.springframework.stereotype.Repository;
  5. import com.myweb.dao.UserDao;
  6. import com.myweb.entity.User;
  7. @Repository
  8. public class UserDaoImp implements UserDao {
  9. @Inject
  10. private HibernateTemplate template;
  11. @Override
  12. public User save(User user) {
  13. // TODO Auto-generated method stub
  14. template.save(user);
  15. return template.load(User.class, user.getId());
  16. }
  17. }

服务层(Service层)

接口:

  1. package com.myweb.service;
  2. import com.myweb.entity.User;
  3. public interface UserService {
  4. User save(User user);
  5. }

实现:

  1. package com.myweb.service.imp;
  2. import javax.inject.Inject;
  3. import org.springframework.stereotype.Service;
  4. import com.myweb.dao.UserDao;
  5. import com.myweb.entity.User;
  6. import com.myweb.service.UserService;
  7. @Service
  8. public class UserServiceImp implements UserService {
  9. @Inject
  10. private UserDao userDao;
  11. @Override
  12. public User save(User user) {
  13. // TODO Auto-generated method stub
  14. return userDao.save(user);
  15. }
  16. }

控制层(Controller层)

  1. package com.myweb.controller;
  2. import javax.inject.Inject;
  3. import org.apache.shiro.SecurityUtils;
  4. import org.apache.shiro.authc.AuthenticationException;
  5. import org.apache.shiro.authc.UsernamePasswordToken;
  6. import org.apache.shiro.config.IniSecurityManagerFactory;
  7. import org.apache.shiro.subject.Subject;
  8. import org.apache.shiro.util.Factory;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.web.bind.annotation.ModelAttribute;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import com.myweb.entity.User;
  16. import com.myweb.service.UserService;
  17. @Controller
  18. @RequestMapping("/user")
  19. public class UserController {
  20. @Inject
  21. private UserService userService;
  22. @RequestMapping(value = "/register.do", method = RequestMethod.POST)
  23. public String register(User user) {
  24. userService.save(user);
  25. return "login";
  26. }
  27. @RequestMapping(value = "/login.do", method = RequestMethod.POST)
  28. public String login(@ModelAttribute("user") User user) {
  29. return "self";
  30. }
  31. }

视图成(View层)

register.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6. <title>注冊</title>
  7. </head>
  8. <body>
  9. <form action="/myweb/user/register.do" method="post">
  10. 用户名:<input type="text" name="username" /><br /> 密码:<input
  11. type="password" name="password"><br /> <input type="submit"
  12. value="提交">
  13. </form>
  14. </body>
  15. </html>

login.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java"%>
  2. <html>
  3. <head>
  4. <title>登录</title>
  5. </head>
  6. <body>
  7. <form action="/myweb/user/login.do" method="post">
  8. 用户名:<input type="text" name="username"><br /> 密码:<input
  9. type="password" name="password"><br /> <input type="submit"
  10. value="登录">
  11. </form>
  12. </body>
  13. </html>

self.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>个人中心</title>
  8. </head>
  9. <body>欢迎你!。!
  10. ${user.username}
  11. </body>
  12. </html>

Spring4+SpringMVC+Hibernate4整合入门与实例的更多相关文章

  1. spring4+springmvc+hibernate4 demo

    来自 CSDN . 其实下面的更好:加入了maven集成.Spring4 MVC Hibernate4集成 下面也是一篇讲的很详细的文章: hibernate4无法保存数据 而自己遇到的hiberna ...

  2. Spring4 SpringMVC Hibernate4 Freemaker 整合样例

    更正改动(2014-05-30 13:47:22):有的IDE中web.xml会报这个错: cvc-complex-type.2.4.a: Invalid content was found star ...

  3. Spring4 SpringMVC Hibernate4 Freemaker 集成示例

    变更更正(2014-05-30 13:47:22):一些IDE在web.xml我们会报告这个错误: cvc-complex-type.2.4.a: Invalid content was found ...

  4. Spring4 与 Hibernate4 整合过程中的问题记录

    Spring4使用注解配置,很方便也很有趣,就是有一些坑需要自己去发现和解决,笔者列出自己在使用过程中遇到的问题,希望对您有所帮助. 1.如果使用hibernate.cfg.xml配置文件配置Hibe ...

  5. spring+springmvc+ibatis整合注解方式实例【转】

    源自-----> http://shaohan126448.iteye.com/blog/2033563 (1)web.xml文件(Tomcat使用) 服务器根据配置内容初始化spring框架, ...

  6. spring+springmvc+ibatis整合注解方式实例

    需求说明 实现用户通过数据库验证登录需求.採用 Myeclipse+Tomcat 6.0+Mysql 5.0+JDK 1.6 2.数据库表 开发所用是Mysql数据库,仅仅建立单张用户表T_USER, ...

  7. spring4和hibernate4整合的步骤

    基本的整合步骤如下: 由于在spring中可以直接实现自动装配bean对象,所以可以直接将hibernate中的配置属性移植过来: 1. 装配dataSource对象 <!-- 配置数据源 -- ...

  8. Spring4+SpringMVC+MyBatis整合思路(山东数漫江湖)

    1.Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件 ...

  9. Maven+SpringMVC+Mybatis整合入门Demo

    1 数据库准备 (1)建立一个名为mytest的数据库 (2)创建表 CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT ...

随机推荐

  1. 数据结构( Pyhon 语言描述 ) — — 第1章:Python编程基础

    变量和赋值语句 在同一条赋值语句中可以引入多个变量 交换变量a 和b 的值 a,b = b,a Python换行可以使用转义字符\,下一行的缩进量相同 )\ 帮助文档 help() 控制语句 条件式语 ...

  2. raywenderlich.com Objective-C编码规范

    原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : r ...

  3. failed to execute goal org.apache.maven.plugins:maven-archetype-plugin错误解决方法

    使用maven创建project时碰到如下错误: D:\codes\JSF>mvn archetype:create -DgroupId=com.tutorialspoint.test -Dar ...

  4. java读写串口数据

    本博文参考自https://www.cnblogs.com/Dreamer-1/p/5523046.html 最近接触到了串口及其读写,在此记录java进行串口读写的过程. 1.导入串口支持包 需要下 ...

  5. Knockout v3.4.0 中文版教程-4-通过监控数组工作

    2.通过监控数组工作 1. 监控数组 如果你想检测或者响应一个对象的改变,你用observables.如果你想检测和响应一个集合的改变,使用observableArray.这个在很多情况下都非常有用, ...

  6. Java-得到类的包

    package com.tj; public class MyClass2 { public static void main(String[] args) { Class cls = java.la ...

  7. Java单例模式简单实现

    代码 public class Singleton { private static Singleton singleton;//创建一个单例对象 public static Singleton ge ...

  8. jsonp实现跨域访问json数据

    前台js function init() { $.ajax({ url: 'http://localhost:8012/index.json', dataType: "jsonp" ...

  9. 大数据学习——sqoop导入数据

    把数据从关系型数据库导入到hadoop 启动sqoop 导入表表数据到HDFS 下面的命令用于从MySQL数据库服务器中的emp表导入HDFS. sqoop import \ --connect jd ...

  10. php(ajax)异步刷新(转)

    第一种方法,ajax实现:当然,ajax使用起来确实很简单就可以实现,但是里面的很多知识还是比较有点深的.我之前做页面时间自动刷新的功能就是用的ajax.完整代码是:1.getTime.php: 复制 ...