实现的功能,在登陆页面输入Username和PassWord后,将username和password通过Hibernate匹对数据库是否含有一样的username和password,若有则登陆进去,若没有则返回到登陆页面

显示层

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body><form action="userlogin">用户名:<input type="text" name="username"><br/>密码:<input type="password" name="password"><br/><input type="submit" value="submit"><input type="reset" value="reset"></form>
</body>
</html>

model层

User

package com.zs.model;public class User {private String username;private String password;private Short sex;private String email;private String address;private String grade;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Short getSex() {return sex;}public void setSex(Short sex) {this.sex = sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}
}

User.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2014-12-14 14:51:48 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping><class name="com.zs.model.User" table="USER"><id name="username" type="java.lang.String"><column name="USERNAME" /><generator class="assigned" /></id><property name="password" type="java.lang.String"><column name="PASSWORD" /></property><property name="sex" type="java.lang.Short"><column name="SEX" /></property><property name="email" type="java.lang.String"><column name="EMAIL" /></property><property name="address" type="java.lang.String"><column name="ADDRESS" /></property><property name="grade" type="java.lang.String"><column name="GRADE" /></property></class>
</hibernate-mapping>

Hibernate:

配置hibernate.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><!--连接数据库的配置--><property name="connection.username">root</property><property name="connection.password">root</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql:///hibernate</property><property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><property name="show_sql">true</property><property name="hibernate.format_sql">true</property><property name="hibernate.hbm2ddl.auto">update</property><!--数据库映射Java用户--><mapping resource="com/zs/model/User.hbm.xml" /></session-factory>
</hibernate-configuration>

Struts:

<?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><package name="default" extends="struts-default"><!--登陆主页面时候的Action--><action name="index"><result>/index.jsp</result></action><!--在index.jsp提交submit后若登陆成功则转到adminlogin,否则转到index--><action name="userlogin" class="com.zs.web.admin.AdminLoginAction"><result name="success">/admin/adminlogin.jsp</result><result name="input">/index.jsp</result></action></package></struts>

Action:

package com.zs.web.admin;import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;
import com.zs.dao.UserDao;
import com.zs.dao.impl.UserDaoImpl;
import com.zs.model.User;public class AdminLoginAction extends ActionSupport implements SessionAware {/*** */private static final long serialVersionUID = 1L;UserDao dao = new UserDaoImpl();private String username;private String password;private Map<String,Object> session;public String execute(){User user = dao.isValidAdmin(username, password);//将username和password传递到dao层交个hibernate判断if(user!=null){session.put("user", user);//若登陆成功则将该user记录在session中return SUCCESS;}else{addActionError("你没有管理权限");return INPUT;}}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Map getSession() {return session;}public void setSession(Map session) {this.session = session;}}

判断用户和密码是否存在于数据库中

package com.zs.dao.impl;import java.util.List;import com.zs.dao.BaseDaoImpl;
import com.zs.dao.UserDao;
import com.zs.model.User;public class UserDaoImpl extends BaseDaoImpl implements UserDao {@Overridepublic void saveUser(User user) {// TODO Auto-generated method stub
        }@Overridepublic List<User> getAll(Class clazz) {// TODO Auto-generated method stubreturn null;}@Overridepublic User isValidUser(String username, String password) {// TODO Auto-generated method stubreturn null;}//判断数据库中时候含有该用户
    @Overridepublic User isValidAdmin(String username, String password) {User user = null;//调用hibernateList<User> list =super.search("FROM User WHERE grade='admin' AND username ='"+username+"' AND password = '"+password+"'");if(list!=null && list.size()>0){//若找到的list不为空那么则说明数据库中包含这个人user = list.get(0);}return user;}}

Hibernate初始化借口并且从数据库中取数据

package com.zs.dao;import java.util.List;import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;public class BaseDaoImpl implements IBaseDao {private  SessionFactory sessionFactory;private  Session session;private  Transaction transaction;//初始session接口public void init(){Configuration configuration = new Configuration().configure();ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();sessionFactory = configuration.buildSessionFactory(serviceRegistry);session = sessionFactory.openSession();transaction = session.beginTransaction();}@Overridepublic Session getSession() {init();return session;}@Overridepublic void closeSession() {session.close();}@Overridepublic List search(String hql) {//调用session接口Session session = null;session = getSession();List alist = null;alist = session.createQuery(hql).list();//从数据库中查询
        session.close();return alist;}}

可以先建好一个名为User的数据库,设置一个用户,然后便可以测试了

完整代码可以在我github下载:https://github.com/calmound/web/tree/master/web

struts2 hibernate登录相关推荐

  1. Struts2 Hibernate集成示例教程

    Struts2 Hibernate集成示例教程 Struts2和Hibernate都是各自领域中广泛使用的框架.今天我们将学习如何将Struts2 Web应用程序框架与Hibernate ORM框架集 ...

  2. 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)

    一.概述 从今天才开始有时间来总结总结以前自己练习的一些东西,希望总结出来对以后可以更加便捷的来学习,也希望可以帮助到正需要这些东西的同行人,一起学习,共同进步. 二. 登录功能总结 2.1.登录功能 ...

  3. jsp管理系统页面模板_jsp+ssh(spring+struts2+hibernate)+mysql实现的高校实验室管理系统...

    今天给大家演示的是一款由 jsp+ssh(spring+struts2+hibernate)+mysql实现的 高校实验室管理系统 本系统后端采用ssh框架, 前端采用bootstrap和layui框 ...

  4. java ee ssh三大框架知识点_详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)...

    详解JAVAEE--SSH三大框架整合(spring+struts2+hibernate) 发布时间:2020-09-17 13:34:05 来源:脚本之家 阅读:64 作者:kent鹏 一.整合原理 ...

  5. Struts2 + Hibernate + Spring 以及javaweb模块问题解决(1)

    Struts2 + Hibernate + Spring 以及javaweb模块问题解决 1.资源文件的配置:src文件夹里面要配置,action所在的目录中也要配置. 2.<s: action ...

  6. struts2+Hibernate实现名片管理系统

    这次真的废了好大劲,不是这里落下了一个组件就是那里路径又写错了,趁现在能运行赶紧记录一下. (现在由于插入功能还不能实现,所以注册功能实现不了,应该是hql语句的问题,到时候有空的时候好好琢磨以下Us ...

  7. 基于SSH(Spring+Struts2+Hibernate)开发健身俱乐部会员管理系统

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者需要毕业设计项目,大作业指导,购买付费源码等,欢迎指教: 企鹅:869192208 文章目录 一.开发背景 二. 需求分析 ...

  8. Struts2+Hibernate+Spring 整合示例

    转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...

  9. Struts2+Hibernate分页显示实例

    下面是一个struts2+hibernate的分页显示,主要是用到了hibernate的相应分页方法大大简单了分页的代码 版本:Struts2.1.8 Hibernate3.2 Oracle9g 具体 ...

最新文章

  1. 报错-Unknown class in Interface Builder file
  2. HDU2024 C语言合法标识符
  3. java语言程序设计你_清华大学出版社-图书详情-《Java语言程序设计》
  4. 几个常用的JS代码.
  5. ‘SentencePieceProcessor‘ object has no attribute ‘encode‘ 报错解决
  6. 简单的Flash网络游戏源代码
  7. 数学建模系列--灰色关联分析
  8. 1-10000水仙花数
  9. 企查查某 2022/7/13 随机请求头JS逆向:★★
  10. 安装k8s时,报CA证书加载失败的错误
  11. 微信小程序云开发上传图片和删除图片
  12. 关于 K8s 集群中证书期限确认及续约的一些笔记
  13. 2022新版妹子写真网站源码+UI非常精美
  14. 像听故事一样学习Linux操作系统
  15. Authing 郑凌:我眼中的 Authing
  16. js的项目1:世纪佳缘、京东关闭广告、新浪下拉菜单、开关灯案例
  17. ChatGPT 被大面积封号,到底发生什么了?
  18. 大学生的小乐趣:html画布制作贪吃蛇小游戏
  19. ABT 钱包 2.3 版更新发布
  20. 记一次RE的做题思路 —— Mountain climbing

热门文章

  1. 【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
  2. 【EventBus】EventBus 源码解析 ( 取消订阅 )
  3. 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “插件包“ 中的 Element[] dexElements )
  4. bzoj 1863 二分+dp check
  5. mybatis映射器${}和#{}的区别
  6. Winform判断一个窗口是否以模态化方式打开
  7. Java下利用Jackson进行JSON解析和序列化
  8. Xcode7.2如何真机调试iOS 9.3的设备
  9. 经典算法题每日演练——第十九题 双端队列
  10. 为人父母始知天下事---“宝宝哭了”的问题来说说什么是分析,什么是设计