SSH整合的大体结构:我们将Struts2和hibernate交给spring来管理

创建好web项目之后,首先当然是先引入需要的pom节点,需要的pom的节点可以在Maven官方仓库中下载https://mvnrepository.com/

当然以下是我自己准备好的一份pom节点,复制进去下载完即可使用

 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>3.5.1-Final</version></dependency><!-- https://mvnrepository.com/artifact/javax.transaction/jta --><dependency><groupId>javax.transaction</groupId><artifactId>jta</artifactId><version>1.1</version></dependency><!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-annotations</artifactId><version>3.4.0.GA</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId><version>1.6.4</version></dependency><!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.0-api</artifactId><version>1.0.1.Final</version></dependency><!--配置需要的ehcahe插件--><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-ehcache</artifactId><version>3.6.10.Final</version></dependency><!--spring配置--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.0.RELEASE</version></dependency><!--aop使用的jar--><dependency><groupId> org.aspectj</groupId ><artifactId> aspectjweaver</artifactId ><version> 1.8.7</version ></dependency><!-- Spring整合JavaWeb的包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.2.0.RELEASE</version></dependency><!--jstl的jar--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version><scope>runtime</scope></dependency><!--java ee--><!-- https://mvnrepository.com/artifact/javax/javaee-api --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>6.0</version><scope>provided</scope></dependency><!--数据源配置  C3P0--><!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.2.0.RELEASE</version></dependency><!--Spring-ORM--><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version> 4.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.2.0.RELEASE</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-convention-plugin</artifactId><version>2.3.24</version><exclusions><exclusion><artifactId>commons-lang3</artifactId><groupId>org.apache.commons</groupId></exclusion></exclusions></dependency><!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-spring-plugin --><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-plugin</artifactId><version>2.3.24</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>asm</groupId><artifactId>asm-commons</artifactId><version>3.3</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.3.1</version></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging-api</artifactId><version>1.1</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.23</version></dependency><dependency><groupId>javassist</groupId><artifactId>javassist</artifactId><version>3.11.0.GA</version></dependency><dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.0.6</version></dependency><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.24</version></dependency><dependency><groupId>org.apache.struts.xwork</groupId><artifactId>xwork-core</artifactId><version>2.3.24</version></dependency></dependencies><build><resources><resource><directory>src/main/resources</directory></resource><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

在src下创建resource目录,并在创建好的目录中创建相应的XML文件

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:aop="http://www.springframework.org/schema/aop"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><context:component-scan base-package="cn.ssh"/><!--定义数据源--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql:///hibernate"/><property name="username" value="root"/><property name="password" value="0000"/></bean><!--配置sessionFactory--><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!--第二种方法--><!--为AnnoctionSessionFactoryBean注入数据源--><property name="dataSource" ref="dataSource"></property><!--配置hibernate--><property name="hibernateProperties"><props><prop key="show_sql">true</prop><prop key="format_sql">true</prop><prop key="hbm2ddl.auto">update</prop></props></property><!--添加对象映射文件--><property name="mappingResources"><list><value>cn/ssh/pojo/User.hbm.xml</value></list></property></bean><!--配置dao--><bean id="userDao" class="cn.ssh.dao.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory"/></bean><!--配置Service--><bean id="userService" class="cn.ssh.service.UserServiceImpl"><property name="userDao" ref="userDao"/></bean><!--配置action--><bean id="userAction" class="cn.ssh.action.UserAction"><property name="userService" ref="userService"></property></bean><!--定义事务管理器--><bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"/></bean><!--事务增强--><tx:advice id="txAdvice" transaction-manager="txManager"><!--定义事务属性--><tx:attributes><tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT"/><tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT"/><tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT"/><tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT"/></tx:attributes></tx:advice><!--定义切面--><aop:config><!--定义切入点--><aop:pointcut id="serviceMethod" expression="execution(* *..*.service..*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/></aop:config>
</beans>

hibernate.cfg.xml(当applicationtext.xml中出现Hibernate相关配置时,就可以不需要此文件。。当然此时的applicationtext.xml中文件是存在Hibernate配置)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory><!--jdbc连接四要素--><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernate</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">0000</property><!--在控制台上展示sql--><property name="show_sql">true</property><!--格式化sql--><property name="format_sql">true</property><property name="hbm2ddl.auto">update</property><property name="current_session_context_class">thread</property><!--加载的配置文件--><mapping resource="cn/ssh/pojo/User.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>

至于Struts.xml文件我们等到需要的时候在进行配置

web.xml(需要修改web.xml的头部)

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Archetype Created Web Application</display-name><!--配置环境参数--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--配置监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--过滤器--><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping> 指定项目启动后的首页面,如果不是index.jsp页面需要添加<welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list>
</web-app>

创建Java包,创建实体类以及相关的xml文件

Pojo层

package cn.ssh.pojo;import javax.persistence.*;public class User {private Integer id;private String name;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.ssh.pojo"><class name="User" table="`User`"><id name="id" type="java.lang.Integer" ><generator class="identity"/><!--主键生成策略--></id><property name="name" type="java.lang.String" /><property name="password" type="java.lang.String"><column name="`password`"></column></property></class>
</hibernate-mapping>

dao层

public interface UserDao {public  User findUser(String name,String password);
}

在实现类中我们继承HibernateDaoSupport类,这个类主要给我们提供了一些增删改的方法

package cn.ssh.dao;import cn.ssh.pojo.User;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;import java.util.List;/*** @author: wmj* @Data: 2018-10-30 14:44**/public class UserDaoImpl extends HibernateDaoSupport implements  UserDao {@Overridepublic User findUser(String name, String password) {List<User> users = (List<User>) this.getHibernateTemplate().find("from User u WHERE u.name=? AND u.password=?", name, password);if (users.size()>0){return  users.get(0);}else{return null;}}
}

service层

action层

UserAction继承ActionSupport

package cn.ssh.action;import cn.ssh.pojo.User;
import cn.ssh.service.UserService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;import java.util.Map;/*** @author: wmj* @Data: 2018-10-30 15:25**/
@Controller
public class UserAction extends ActionSupport {@Autowiredprivate UserService userService;private  String name;  //名称private  String password;   //密码private  String message;   //信息提示  public  String login(){User user = userService.findUser(name, password);ActionContext context=ActionContext.getContext();      //用户名为空if (name==null || name.equals("")){this.setMessage("请输入名称");return  "login";}//密码为空if (password==null || password.equals("")){this.setMessage("请输入密码");return  "login";}      //将登陆的用户保存在session集合中Map session = context.getSession();if (null!=user){session.put("user",user);return "index";}this.setMessage("登录失败");return "login";}//要有getter和setter方法,否则映射不到public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}
}

创建相应的JSP页面

创建login.jsp 登陆页面

<%--Created by IntelliJ IDEA.User: wumengjieDate: 2018/10/30Time: 15:32To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head><title>Title</title>
</head>
<body>
<s:form action="login.action" method="post">用户名:<s:textfield name="name"/> <br/>密码:<s:password name="password"/><s:submit value="提交"/>
</s:form>
<s:property value="message"></s:property>
</body>
</html>

这时配置Struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><constant name="struts.ui.theme" value="simple"/><constant name="struts.i18n.encoding" value="UTF-8"/><package name="default" namespace="/" extends="struts-default"><action name="login" class="cn.ssh.action.UserAction" method="login"><result name="login">/login.jsp</result><result name="index">/index.jsp</result></action></package>
</struts>

登录成功页面:index.jsp

成功<s:property value="#session.user.name"></s:property>

配置TomCat

点击Edit Configurations....

点击加号,找到Tomcat Server,配置本地tomcat

配置相关信息

点击带有exploded的即可,把tomcat集成到项目中

也可以点击 Deployment------点击加号-----artifact

什么都不需要改,点击apply即可

启动tomcat,测试

当没有输入密码或输入错误密码会进行提示,因为在UserAction中有message字段,对字段进行赋值,在页面获取即可

转载于:https://www.cnblogs.com/luoxionghenku/p/9915207.html

整合SSH框架实现简单登录相关推荐

  1. 使用SSH框架实现用户登录验证

    今天,写一个非常简单的通过struts+hibernate+spring的集成来实现用户登录验证的例子,让大家了解一下三者是如何是整合的. 我们可以通过myeclipse的向导,生成相应的环境搭建,如 ...

  2. 浅谈IDEA+Maven 整合SSM框架实现简单的增删改查

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

  3. idea 使用 maven 整合 ssm 框架 实现简单的增、删、改 和 分页查询功能

    详细请参考:   idea 使用 maven 整合 ssm 框架 文章目录 ==效果图== ==准备数据库== ==创建maven项目== ==配置文件== pom.xml jdbc.properti ...

  4. 手动整合ssh框架时的各种错误

    因为自己配置时jar包版本不太对,AOP包不能用,因此声明事物管理无效,只能手动在方法中声明 1.报:AnnotationTransactionAttributeSource is only avai ...

  5. SSH框架的简单搭建步骤

    l MyEclipse6.5 l Tomcat5.5.26 l MySQL5.0 l 数据库脚本程序 CREATE TABLE user ( id int(11) NOT NULL auto_incr ...

  6. 使用maven整合SSH框架详细步骤

    (文章所使用的的框架为Struts2+Spring+Hibernate,项目的结构图参照文章尾部) 1.第一步:创建maven工程,在pom.xml文件中导入需要的jar包依赖: <projec ...

  7. Java中的tiles_Spring mvc整合tiles框架的简单入门教程(maven)

    前言 本教程基于Springmvc,Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高.Spring 3.0更加完善,实现了对S ...

  8. IDEA用maven整合ssh框架

    2019独角兽企业重金招聘Python工程师标准>>> web.xml配置 <?xml version="1.0" encoding="UTF-8 ...

  9. 使用bootstrap框架实现简单登录页面

    实现思路:从上到下,从左到右 一开始没想到怎么实现的是验证码和图片那里,实现验证码和图片那一块的布局还是一个input控件和一张图片,使用bootstrap里的input控件默认情况下,是占一行的. ...

  10. SSH框架整合——基于注解

    SSH框架整合--基于注解 @(Spring)[Spring, hibernate, struts2, 框架整合] SSH框架整合基于注解 SSH框架整合 第一步导入Jar包 第二步导入配置文件 第三 ...

最新文章

  1. JavaScript 事件冒泡简介及应用(转)
  2. php 运维系统开发,PHP开发运维管理系统笔记
  3. php 过滤css样式,PHPCMS v9过滤采集内容中的CSS样式
  4. 深入分析ADO.NET中的DataSet对象
  5. libsvm 数据预处理 模块化程序
  6. Android实训案例(七)——四大组件之中的一个Service初步了解,实现通话录音功能,抽调接口...
  7. c语言case可以判断多个条件吗,case 多个条件
  8. CodeForces - 1538G Gift Set(二分)
  9. 三相阻容降压供电DCDC电源
  10. VC中的一些常用方法(20条)
  11. 剑指offer之把二叉树打印成多行
  12. hadoop ubantu环境搭建_创帆云大数据教程系列1-搭建基于docker的hadoop环境安装规划、容器通信及zookeeper...
  13. intellij idea 导出可执行jar
  14. 7-2 秋天的第一杯奶茶 (5 分)
  15. PyQt5 打造GUI爬虫 小说下载器
  16. Vue中导出json【基于file-saver】
  17. mysql消息已读未读_Redis实现信息已读未读状态提示
  18. 神马!看电子书,会让记忆力衰退!
  19. iOS汉字字符串转拼音
  20. proteus仿真的过程中,经常会不小心把示波器关掉,导致无法查看波形。那么如何调出示波器呢?

热门文章

  1. 获取文件夹下所有文件名(window+linux)
  2. Linux下更改Python的软链接
  3. C++头文件的若干说明和const对象定义
  4. jq实现底部弹框_WPF MVVM 弹框之等待框
  5. 抖音高贵气质的签名_笑言 | 非主流时期的QQ签名和杜蕾斯文案有的一拼。
  6. java阶乘实现_Java 实现阶乘算法
  7. Stm32——keil5项目创建步骤
  8. dbms_java 包不存在_Oracle的sql开发之包技术实战
  9. mysql stored_mysql stored routine (存储例程) 中 definer 的作用 和实例
  10. 经典卷积神经网络 LeNet 动手学深度学习v2 pytorch