spring mvc+spring + hibernate 整合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc+spring + hibernate 整合相关的知识,希望对你有一定的参考价值。

    前面我们已整合了spring + hibernate,并建立了个用户的增加的实例,通过了单元测试,能正常增加数据。今天我们就来集成spring mvc以便建立web界面来输入数据并提交,后台再保存入库。关于spring mvc的一些基础理论及使用方法,网上有很多的资料,我这里就不多说了,下面我们进入实战。
    因为我们项目会用到很多的图片、js代码、css样式文件等。我们在webapp目录下建立个static目录,统一对这些文件进行管理
    一:web.xml配置
        它提供了我们应用程序的配置设定。内容包括有:
         .站台的名称和说明
         .针对环境参数(Context)做初始化工作
         .Servlet的名称和映射
         .Session的设定
         .Tag library的对映
         .JSP网页设定
         .Mime Type处理
         .错误处理
         .利用JDNI取得站台资源
        要了解web.xml的设定值,必须了解它的schema,从web.xml中知道它的schema是由Sum Microsystems公司定制的,我们可以通过http://java.sun.com/xml/ns/j2ee/web-mapp_2_4.xsd网页来详细了    解。这里我只说说我们集成spring mvc需要的基本配置
    1.配置应用的基本信息
  1. <!-- 工程显示名称 -->
  2. <display-name>ExtDesktop</display-name>
  3. <!-- 工程的描述性说明 -->
  4. <description>Ext Js Desktop Web APP 学习</description>
  5. <!-- 工程的图标定义 -->
  6. <icon>
  7. <small-icon>/images/small.gif</small-icon>
  8. <large-icon>/images/large.gir</large-icon>
  9. </icon>
    2.ServletContext(上下文)
  1. <!-- 配置ServletContext(上下文) -->
  2. <!-- 配置文件路径 -->
  3. <context-param>
  4. <param-name>contextConfigLocation</param-name>
  5. <param-value>
  6. classpath*:applicationContext*.xml
  7. </param-value>
  8. </context-param>
  9. <!-- webApp的根,用来区分部署到同一tomcat的不同应用程序 -->
  10. <context-param>
  11. <param-name>webAppRootKey</param-name>
  12. <param-value>extdesktop.webapp.root</param-value>
  13. </context-param>
    3.配置springmvc拦截器
  1. <!-- 配置springmvc 拦截器 -->
  2. <servlet>
  3. <servlet-name>springmvc</servlet-name>
  4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  5. <load-on-startup>1</load-on-startup>
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>springmvc</servlet-name>
  9. <url-pattern>/</url-pattern>
  10. </servlet-mapping>
    4.完整的web.xml配置
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns="http://java.sun.com/xml/ns/javaee"
  5. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  7. id="extdesktop"
  8. version="3.0"
  9. metadata-complete="true">
  10. <!-- 工程显示名称 -->
  11. <display-name>ExtDesktop</display-name>
  12. <!-- 工程的描述性说明 -->
  13. <description>Ext Js Desktop Web APP 学习</description>
  14. <!-- 工程的图标定义 -->
  15. <icon>
  16. <small-icon>/images/small.gif</small-icon>
  17. <large-icon>/images/large.gir</large-icon>
  18. </icon>
  19. <!-- 配置ServletContext(上下文) -->
  20. <!-- 配置文件路径 -->
  21. <context-param>
  22. <param-name>contextConfigLocation</param-name>
  23. <param-value>
  24. classpath*:spring*.xml
  25. </param-value>
  26. </context-param>
  27. <!-- webApp的根,用来区分部署到同一tomcat的不同应用程序 -->
  28. <context-param>
  29. <param-name>webAppRootKey</param-name>
  30. <param-value>extdesktop.webapp.root</param-value>
  31. </context-param>
  32. <!-- Spring配置 -->
  33. <listener>
  34. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  35. </listener>
  36. <!-- 配置springmvc 拦截器 -->
  37. <servlet>
  38. <servlet-name>springmvc</servlet-name>
  39. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  40. <load-on-startup>1</load-on-startup>
  41. </servlet>
  42. <servlet-mapping>
  43. <servlet-name>springmvc</servlet-name>
  44. <url-pattern>/</url-pattern>
  45. </servlet-mapping>
  46. <!-- 字符过滤 -->
  47. <filter>
  48. <filter-name>characterEncoding</filter-name>
  49. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  50. <init-param>
  51. <param-name>encoding</param-name>
  52. <param-value>UTF-8</param-value>
  53. </init-param>
  54. <init-param>
  55. <param-name>forceEncoding</param-name>
  56. <param-value>true</param-value>
  57. </init-param>
  58. </filter>
  59. <filter-mapping>
  60. <filter-name>characterEncoding</filter-name>
  61. <url-pattern>/*</url-pattern>
  62. </filter-mapping>
  63. <!-- 默认跳转到根目录下的页面,在这里为login.jsp -->
  64. <welcome-file-list>
  65. <welcome-file>login.jsp</welcome-file>
  66. </welcome-file-list>
  67. </web-app>

    二:springmv-servlet.xml配置
        springmvc-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为springmvc(<servlet-name>spring</servlet-name>),再加上“-servlet”后缀而形成的springmvc-servlet.xml文件名,如果改为其它名称(如spring),对应的文件名则为【名称】-servlet.xml(如spring-servlet)。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:tx="http://www.springframework.org/schema/tx"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xmlns:mvc="http://www.springframework.org/schema/mvc"
  8. xsi:schemaLocation="http://www.springframework.org/schema/beans
  9. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  12. http://www.springframework.org/schema/context
  13. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  14. http://www.springframework.org/schema/mvc
  15. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
  16. <!-- 自动扫描的包名 -->
  17. <context:component-scan base-package="com.ympcsoft" />
  18. <!-- 默认的注解映射的支持 -->
  19. <mvc:annotation-driven />
  20. <!-- 配置静态文件访问 -->
  21. <mvc:resources location="/static/" mapping="/static/**"/>
  22. <!-- 视图解释类 -->
  23. <bean
  24. id="viewResolver"
  25. class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  26. <property
  27. name="viewClass"
  28. value="org.springframework.web.servlet.view.JstlView" />
  29. <property
  30. name="prefix"
  31. value="/WEB-INF/view/" />
  32. <property
  33. name="suffix"
  34. value=".jsp" />
  35. </bean>
  36. </beans>
三:login.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>Insert title here</title>
  8. </head>
  9. <body>
  10. <form action="login/login" method="post">
  11. 用户名:<input type="text" name="userName"/>
  12. 密码:<input type="text" name="userPwd"/><br>
  13. <input type="radio" name="userCh" value="portal" checked>经典界面
  14. <input type="radio" name="userCh" value="desktop">类桌面界面
  15. <input type="submit" value="提交"/>
  16. </form>
  17. </body>
  18. </html>
四:loginController.java
  1. package com.ympcsoft.extdesktop.controller.login;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.servlet.ModelAndView;
  8. import com.ympcsoft.extdesktop.domain.sys.SysUser;
  9. import com.ympcsoft.extdesktop.service.sys.SysUserService;
  10. @Controller
  11. @RequestMapping("/login")
  12. public class LoginController{
  13. @Resource
  14. private SysUserService sysUserService;
  15. @RequestMapping("/login")
  16. public ModelAndView login(SysUser sysUserModel, HttpServletRequest request, HttpServletResponse response) throws Exception {
  17. String userName = sysUserModel.getUserName();
  18. String userPwd = sysUserModel.getUserPwd();
  19. String userCh = sysUserModel.getUserCh();
  20. ModelAndView mav = null;
  21. System.out.println("user:"+userName + " userPwd:" + userPwd + " userCh:" + userCh);
  22. //sysUser持久化到数据库中
  23. SysUser sysUser = new SysUser();
  24. sysUser.setUserName(sysUserModel.getUserName());
  25. sysUser.setUserPwd(sysUserModel.getUserPwd());
  26. sysUser.setUserCh(sysUserModel.getUserCh());
  27. sysUserService.addUser(sysUser);
  28. if ("portal".equals(userCh)){
  29. mav = new ModelAndView("/desktop/portal");
  30. mav.addObject("常规界面", " hello "+userName);
  31. } else {
  32. mav = new ModelAndView("/desktop/desktop");
  33. mav.addObject("desktop界面", " hello "+userName);
  34. }
  35. return mav;
  36. }
  37. }

    




以上是关于spring mvc+spring + hibernate 整合的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC学习笔记---Spring MVC 的HelloWorld

spring mvc怎么存cookie

Spring MVC系列初识Spring MVC

spring mvc中 Circular view path 问题

spring boot 中Spring data jpa数据库表字段命名策略

Spring MVC 框架学习---- 我的第一个 Spring MVC 程序