工具:Eclipse(Maven管理工具)+Tomcat+Mysql。

1.新建一个Maven工程(maven-archetype-webapp)。

打开File ——>new——>Maven Project,直接next,选择(maven-archetype-webapp).接着输入Grouid和ArtifactId,点击finish等待生成项目即可。

2.修改pom.xml文件,我这里的依赖是网上找的。保存后会自动下载jar包在你的repository文件夹中(这里要保证连网)。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.gh</groupId>
  5. <artifactId>SSH1</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>SSH1 Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <properties>
  12. <!-- 统一源码的编码方式 -->
  13. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  14. <!-- 统一各个框架版本 -->
  15. <struts.version>2.5.10</struts.version>
  16. <spring.version>4.3.8.RELEASE</spring.version>
  17. <hibernate.version>4.2.4.Final</hibernate.version>
  18. </properties>
  19.  
  20. <dependencies>
  21. <dependency>
  22. <groupId>junit</groupId>
  23. <artifactId>junit</artifactId>
  24. <version>3.8.1</version>
  25. <scope>test</scope>
  26. </dependency>
  27.  
  28. <!-- Spring 核心依赖 -->
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-core</artifactId>
  32. <version>${spring.version}</version>
  33. </dependency>
  34. <!-- Spring web依赖 -->
  35. <dependency>
  36. <groupId>org.springframework</groupId>
  37. <artifactId>spring-web</artifactId>
  38. <version>${spring.version}</version>
  39. </dependency>
  40. <!-- Spring整合ORM框架依赖 -->
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-orm</artifactId>
  44. <version>${spring.version}</version>
  45. </dependency>
  46. <!-- Struts2 核心依赖 -->
  47. <dependency>
  48. <groupId>org.apache.struts</groupId>
  49. <artifactId>struts2-core</artifactId>
  50. <version>${struts.version}</version>
  51. </dependency>
  52. <!-- Struts2和Spring整合依赖 -->
  53. <dependency>
  54. <groupId>org.apache.struts</groupId>
  55. <artifactId>struts2-spring-plugin</artifactId>
  56. <version>${struts.version}</version>
  57. </dependency>
  58. <!-- Hibernate 核心依赖 -->
  59. <dependency>
  60. <groupId>org.hibernate</groupId>
  61. <artifactId>hibernate-core</artifactId>
  62. <version>${hibernate.version}</version>
  63. </dependency>
  64. <!-- MySQL 依赖 -->
  65. <dependency>
  66. <groupId>mysql</groupId>
  67. <artifactId>mysql-connector-java</artifactId>
  68. <version>5.1.42</version>
  69. </dependency>
  70. <!-- C3P0 依赖 -->
  71. <dependency>
  72. <groupId>com.mchange</groupId>
  73. <artifactId>c3p0</artifactId>
  74. <version>0.9.5</version>
  75. </dependency>
  76. <!-- AspectJ依赖 -->
  77. <dependency>
  78. <groupId>org.aspectj</groupId>
  79. <artifactId>aspectjweaver</artifactId>
  80. <version>1.8.10</version>
  81. </dependency>
  82. <!-- SLF4J依赖 -->
  83. <dependency>
  84. <groupId>org.slf4j</groupId>
  85. <artifactId>slf4j-log4j12</artifactId>
  86. <version>1.7.25</version>
  87. </dependency>
  88.  
  89. <dependency>
  90. <groupId>commons-dbcp</groupId>
  91. <artifactId>commons-dbcp</artifactId>
  92. <version>1.4</version>
  93. </dependency>
  94. <dependency>
  95. <groupId>commons-pool</groupId>
  96. <artifactId>commons-pool</artifactId>
  97. <version>1.6</version>
  98. </dependency>
  99. <dependency>
  100. <groupId>org.apache.taglibs</groupId>
  101. <artifactId>taglibs-standard-spec</artifactId>
  102. <version>1.2.5</version>
  103. </dependency>
  104. <dependency>
  105. <groupId>org.apache.taglibs</groupId>
  106. <artifactId>taglibs-standard-impl</artifactId>
  107. <version>1.2.5</version>
  108. </dependency>
  109.  
  110. </dependencies>
  111. <build>
  112. <finalName>SSH1</finalName>
  113. <!-- 统一源代码编译输出的JDK版本 -->
  114. <plugins>
  115. <plugin>
  116. <groupId>org.apache.maven.plugins</groupId>
  117. <artifactId>maven-compiler-plugin</artifactId>
  118. <version>3.5.1</version>
  119. <configuration>
  120. <source>1.7</source>
  121. <target>1.7</target>
  122. </configuration>
  123. </plugin>
  124. <!-- 打包时跳过单元测试 -->
  125. <plugin>
  126. <groupId>org.apache.maven.plugins</groupId>
  127. <artifactId>maven-surefire-plugin</artifactId>
  128. <version>2.19.1</version>
  129. <configuration>
  130. <skipTests>true</skipTests>
  131. </configuration>
  132. </plugin>
  133. <!-- 集成Tomcat插件 -->
  134. <plugin>
  135. <groupId>org.apache.tomcat.maven</groupId>
  136. <artifactId>tomcat7-maven-plugin</artifactId>
  137. <version>2.2</version>
  138. <configuration>
  139. <path>/${project.artifactId}</path>
  140. </configuration>
  141. </plugin>
  142. </plugins>
  143.  
  144. </build>
  145. </project>

3.修改web.xml文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  5. <display-name>ssh</display-name>
  6.  
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <!-- 配置Struts2过滤器 -->
  11. <filter>
  12. <filter-name>struts2</filter-name>
  13. <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  14. </filter>
  15. <filter-mapping>
  16. <filter-name>struts2</filter-name>
  17. <url-pattern>/*</url-pattern>
  18. </filter-mapping>
  19.  
  20. <!-- 配置Spring的监听器 -->
  21. <listener>
  22. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  23. </listener>
  24.  
  25. <!-- 指定Spring配置文件所在路径 -->
  26. <context-param>
  27. <param-name>contextConfigLocation</param-name>
  28. <param-value>classpath:applicationContext.xml</param-value>
  29. </context-param>
  30.  
  31. </web-app>

4.添加struts.xml文件和applicationcontext.xml文件在src目录下。

struts.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
  4. "http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 注意版本 -->
  5. <struts>
  6. <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
  7. <package name="user" namespace="/user" extends="struts-default">
  8. <action name="UserAction" class="action.UserAction" method="toLogin">
  9. <result name="success">/index2.jsp</result>
  10. <result name="error">/error.jsp</result>
  11. </action>
  12. </package>
  13. </struts>

applicationcontext.xml

  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:p="http://www.springframework.org/schema/p"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xmlns:aop="http://www.springframework.org/schema/aop"
  8. xmlns:tx="http://www.springframework.org/schema/tx"
  9. xsi:schemaLocation="
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
  12. http://www.springframework.org/schema/aop
  13. http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
  14. http://www.springframework.org/schema/context
  15. http://www.springframework.org/schema/context/spring-context-3.1.xsd
  16. http://www.springframework.org/schema/beans
  17. http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" default-autowire="byName">
  18.  
  19. <context:annotation-config />
  20. <!-- spring 扫描路径,注意当前工程只需要扫描dao和service,srpingmvc或者struts2注解才有变化 -->
  21. <context:component-scan base-package="dao,service" />
  22.  
  23. <bean id="dataSource"
  24. class="org.apache.commons.dbcp.BasicDataSource">
  25. <property name="driverClassName"
  26. value="com.mysql.jdbc.Driver">
  27. </property>
  28. <property name="url"
  29. value="jdbc:mysql://127.0.0.1:3306/young">
  30. </property>
  31. <property name="username" value="root"></property>
  32. <property name="password" value="root"></property>
  33. </bean>
  34. <bean id="sessionFactory"
  35. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  36. <property name="dataSource">
  37. <ref bean="dataSource" />
  38. </property>
  39. <property name="hibernateProperties">
  40. <props>
  41. <prop key="hibernate.dialect">
  42. org.hibernate.dialect.MySQLDialect
  43. </prop>
  44. <prop key="hibernate.show_sql">
  45. true
  46. </prop>
  47. </props>
  48. </property>
  49. <property name="mappingDirectoryLocations">
  50. <list>
  51. <value>classpath:entity/</value>
  52. </list>
  53. </property>
  54. </bean>
  55. <!-- 配置声明式事务管理(采用注解的方式) -->
  56. <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  57. <property name="sessionFactory" ref="sessionFactory"></property>
  58. </bean>
  59. <!-- 开启注解事务 -->
  60. <tx:annotation-driven transaction-manager="txManager"/>
  61. </beans>

5.新建实体,动作类和接口等。结构如下图。

   UserAction.java

  1. package action;
  2. import java.util.List;
  3.  
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6.  
  7. import com.opensymphony.xwork2.ActionSupport;
  8.  
  9. import entity.User;
  10. import service.UserService;
  11. @Controller
  12. public class UserAction extends ActionSupport{
  13. /**
  14. *
  15. */
  16. private static final long serialVersionUID = 1L;
  17. @Autowired
  18. private UserService userService;//�Զ�ע��
  19.  
  20. public String toLogin(){
  21. List<User>list=userService.findAll();
  22. for (User user : list) {
  23. System.out.println(user.getUserName());
  24. }
  25. return "success";
  26. }
  27.  
  28. }

 BaseDao.java

  1. package common;
  2.  
  3. import java.util.List;
  4.  
  5. public interface BaseDao<T> {
  6. public List<T> findAll();
  7. public int insert(T t);
  8. public int update (T t,int id);
  9. public int delete(int id);
  10. public T findById(int id);
  11. }

BaseService.java

  1. package common;
  2.  
  3. import java.util.List;
  4.  
  5. public interface BaseService <T>{
  6. public List<T> findAll();
  7. public boolean insert(T t);
  8. public boolean update (T t,int id);
  9. public boolean delete(int id);
  10. public T findById(int id);
  11. }

UserDao.java

  1. package dao;
  2.  
  3. import common.BaseDao;
  4. import entity.User;
  5.  
  6. public interface UserDao extends BaseDao<User>{
  7.  
  8. }

UserDaoimpl.java

  1. package dao.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.hibernate.Query;
  6. import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
  7. import org.springframework.stereotype.Repository;
  8.  
  9. import dao.UserDao;
  10. import entity.User;
  11. @Repository
  12. public class UserDaoimpl extends HibernateDaoSupport implements UserDao {
  13.  
  14. public List<User> findAll() {
  15. // TODO Auto-generated method stub
  16. String sql="select * from user";
  17. Query query=getSessionFactory().openSession().createSQLQuery(sql).addEntity(User.class);
  18. List<User> list=query.list();
  19. return list ;
  20. }
  21.  
  22. public int insert(User t) {
  23. // TODO Auto-generated method stub
  24. return 0;
  25. }
  26.  
  27. public int update(User t, int id) {
  28. // TODO Auto-generated method stub
  29. return 0;
  30. }
  31.  
  32. public int delete(int id) {
  33. // TODO Auto-generated method stub
  34. return 0;
  35. }
  36.  
  37. public User findById(int id) {
  38. // TODO Auto-generated method stub
  39. return null;
  40. }
  41.  
  42. }

UserService.java

  1. package service;
  2.  
  3. import common.BaseDao;
  4. import entity.User;
  5.  
  6. public interface UserService extends BaseDao<User>{
  7.  
  8. }

UserServiceimpl.java

  1. package service.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import org.springframework.transaction.annotation.Transactional;
  8.  
  9. import dao.UserDao;
  10. import entity.User;
  11. import service.UserService;
  12. @Transactional
  13. @Service
  14. public class UserServiceimpl implements UserService{
  15. @Autowired
  16. private UserDao userdao;
  17.  
  18. public List<User> findAll() {
  19. // TODO Auto-generated method stub
  20. return userdao.findAll();
  21. }
  22.  
  23. public int insert(User t) {
  24. // TODO Auto-generated method stub
  25. return 0;
  26. }
  27.  
  28. public int update(User t, int id) {
  29. // TODO Auto-generated method stub
  30. return 0;
  31. }
  32.  
  33. public int delete(int id) {
  34. // TODO Auto-generated method stub
  35. return 0;
  36. }
  37.  
  38. public User findById(int id) {
  39. // TODO Auto-generated method stub
  40. return null;
  41. }
  42.  
  43. }

User.java

  1. package entity;
  2. // Generated 2018-3-29 10:41:32 by Hibernate Tools 3.4.0.CR1
  3.  
  4. /**
  5. * User generated by hbm2java
  6. */
  7. public class User implements java.io.Serializable {
  8.  
  9. /**
  10. *
  11. */
  12. private static final long serialVersionUID = 1L;
  13. private Integer userid;
  14. private String userName;
  15. private String pwd;
  16.  
  17. public User() {
  18. }
  19.  
  20. public User(String userName, String pwd) {
  21. this.userName = userName;
  22. this.pwd = pwd;
  23. }
  24.  
  25. public Integer getUserid() {
  26. return this.userid;
  27. }
  28.  
  29. public void setUserid(Integer userid) {
  30. this.userid = userid;
  31. }
  32.  
  33. public String getUserName() {
  34. return this.userName;
  35. }
  36.  
  37. public void setUserName(String userName) {
  38. this.userName = userName;
  39. }
  40.  
  41. public String getPwd() {
  42. return this.pwd;
  43. }
  44.  
  45. public void setPwd(String pwd) {
  46. this.pwd = pwd;
  47. }
  48.  
  49. }

User.hbm.xml

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!-- Generated 2018-3-29 10:41:32 by Hibernate Tools 3.4.0.CR1 -->
  5. <hibernate-mapping>
  6. <class name="entity.User" table="user" catalog="young">
  7. <id name="userid" type="java.lang.Integer">
  8. <column name="userid" />
  9. <generator class="identity" />
  10. </id>
  11. <property name="userName" type="string">
  12. <column name="userName" length="10" />
  13. </property>
  14. <property name="pwd" type="string">
  15. <column name="pwd" length="10" />
  16. </property>
  17. </class>
  18. </hibernate-mapping>

jsp代码

  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <c:set var="ctx" value="${pageContext.request.contextPath}"></c:set>
  6. <html>
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <title>Insert title here</title>
  10. </head>
  11. <body>
  12.  
  13. <form action="${ctx}/user/UserAction!toLogin.action" method="post">
  14. 用户名:<input type="text" name="username" id="username" value=""/>
  15. 密码:<input type="password" name="user.password" id="password" value=""/>
  16. <input type="submit" value="登录">
  17. </form>
  18.  
  19. </body>
  20. </html>

最后部署项目下tomcat中,运行console输出如下:

总结:在这过程中遇到了不少问题。一般都是包的问题和版本问题。

1.在搭建框架运行不报错后,准备去请求数据时,却一直找不到动作类。在跳转时jsp页面一直报如下错。

解决办法:参考博客:https://blog.csdn.net/axwolfer/article/details/40164151

在struts.xml中添加如下代码:

  1. <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

 2.Hibernate版本问题,Hibernate升级后有了不少变化,具体网上看。之前一直用Hibernate3,在搭建开始时我用的是Hibernate5,后来改成了Hibernate4。

使用5时请求数据库时报如下错:

Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext。

解决办法:将Hibernate中的依赖改成Hibernate4版本的即可。

Maven搭建SSH框架的更多相关文章

  1. 使用maven搭建ssh框架

    首先搭建sturts2框架,配置pom文件: <properties> <!-- 文件拷贝时的编码 --> <project.build.sourceEncoding&g ...

  2. 使用maven搭建SSH框架实现登陆、列表查询分页

    SSH框架:struts2 + spring + hibernate web层:struts2+jsp service层:javaBean dao层:hibernate spring:管理Action ...

  3. Maven环境下搭建SSH框架

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...

  4. Maven环境下搭建SSH框架之Spring整合Hibernate

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...

  5. myeclipse搭建SSH框架

    搭建SSH框架 Struts+hibernater+spring架构(myeclipse) 右击,首先加入spring,加入hibernater,再加入struts2 复制jar包(把tomcat发布 ...

  6. MyEclipse8.5快速搭建SSH框架

    来源于:http://jingyan.baidu.com/article/a378c960a78125b3282830cc.html MyEclipse8.5快速搭建SSH框架 使用版本: Strut ...

  7. [JavaEE] SSH框架笔记_eclipse搭建SSH框架详解

    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibe ...

  8. Maven项目搭建(二):Maven搭建SSM框架

    上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...

  9. Eclipse中使用Maven搭建SSM框架

    Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...

随机推荐

  1. jmeter学习笔记--概述

    jmeter:概述 是什么? jmeter是Apache 公司使用java开发的一款测试工具 为什么? 高效.功能强大 模拟一些高并发或多次循环等特殊场景 怎么用? 1.下载jmeter,解压缩 2. ...

  2. 基于django的博客系统

    这是前段代码 达到的效果并不是太好,但我还是要发出来,有更好的建议可以和我讨论 后台还算可以 添加了分类和文章两个功能,还在优化,敬请期待....

  3. Java框架spring 学习笔记(十九):事务管理(注解管理)

    注解管理的方式要比xml配置方式要简单很多 只需在配置文件中添加事务注解 <?xml version="1.0" encoding="UTF-8"?> ...

  4. Apache Flink 数据流编程模型

    抽象等级(Levels of Abstraction) Flink提供不同级别的抽象来开发流/批处理应用程序. Statefule Stream Processing: 是最低级别(底层)的抽象,只提 ...

  5. Python学习—数据库篇之pymysql

    一.pymysql简介 对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...

  6. 《Orange‘s》 Bochs环境配置

    安装配置bochs之前先写一个简单的引导扇区用来测试: org 07c00h mov ax,cs mov ds,ax mov es,ax call DispStr jmp $ DispStr: mov ...

  7. mysql mycat 中间件安装与使用

    一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  8. vue响应式原理

    vue的响应式,数据模型仅仅是普通的Javascript对象.当你修改它们时,视图会进行更新 那么如何追踪变化: 当把普通的js对象传给vue实例的data选项,Vue将遍历此对象的所有属性,并使用O ...

  9. 关于AVL树的思考

    AVL树即平衡二叉树,每个结点有一个平衡因子,即左子树高度减去右子树高.每插入一个结点时,从根部开始按二叉排序树的方法,与节点不断比较,按大小向左右子树插入.在与最后的节点比较后插入时,若有兄弟节点, ...

  10. Juniper BGP配置

    网络拓扑如下: XRV1配置 =========================================================== root@XRV1# run show confi ...