实现的功能,在登陆页面输入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.cfg.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. python编程用户登陆c_django实现用户登陆功能详解

    简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python ...

  2. 需求说明 用户登陆功能的实现 c#

    需求说明 用户登陆功能的实现 c# 需求说明 新建一个用户数据表 添加一个管理员的用户 编写一个c#的程序 接收用户输入的帐号与密码 提交后查询数据库 如果查询成功 提示登陆成功 否则提示登陆不成功 ...

  3. session实现用户登陆功能

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  4. 基于springmvc+mysql+mybatis实现用户登陆功能

    最近在学习springmvc框架,每天的学习过程中颇有一些收获,打算写一篇博客记录一下,也希望能帮到同样在学这个的人. 一:Springmvc 1:SpringMVC的组成结构: (1)前端控制器(D ...

  5. 自动化测试(二)如何用python写一个用户登陆功能

    需求信息: 写一个判断登录的程序: 输入: username password 最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限 需要判断输入是否为空,什么也不输入,输入一个空格.n个 ...

  6. 实现登陆功能——用户登录设计

    1.用户表字段: 用户ID 用户密码 用户名 salt 头像 注册时间 上次登陆时间 登陆次数 id password nickname salt head register_date last_lo ...

  7. 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由

    学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...

  8. jsp的MVC模式设计用户登陆注册

    jsp的MVC模式设计用户登陆注册 用户登陆功能 1.实验内容 2.实验步骤 3.实验结果 4.实验分析 用户登陆功能 通过设计用户的登陆和注册,来学习jsp的MVC模式,熟练掌握MVC模式各部分的内 ...

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

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

最新文章

  1. python有哪些关键字?让他自己“吐”出来!
  2. SQL性能优化之索引优化法
  3. 自己写的一个tomcat发布脚本
  4. Docker Review - docker 容器 常用命令
  5. 批量将图片保存到模拟器
  6. 我的领域驱动设计运用实例 - 领域啊领域
  7. Elasticsearch7.X 字段数据类型
  8. 张莉python 玩转数据答案_中国大学MOOC(慕课)用Python玩转数据答案大全
  9. 动态三角形(动态规划思想入门)
  10. php 框架测试,PHP测试框架PHPUnit组织测试操作示例
  11. Uber和Lyft推个人验证PIN码功能降接送混乱
  12. Java 登录拦截器
  13. 14款CSS3图片层叠切换动画
  14. 华硕老毛子(Padavan)——锐捷6.41,静态ip,学生破解过程分享,非专业仅供参考,啰嗦的一批,有耐心能看懂
  15. 如何批量将 webp 格式的图片转换为 jpg 格式
  16. 【Web前端】HTML—6.表单标签
  17. 14道初级程序员进阶中高级的必经环节
  18. iphone进入安全模式及退出安全模式的方法
  19. 英特尔平台安装黑苹果
  20. 下载Windows ISO镜像的方法 (超详细 适合新手入门)

热门文章

  1. 操作系统原理第九章:虚拟内存
  2. 【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )
  3. 【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
  4. 【Java 虚拟机原理】垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )
  5. 【Flutter】StatefulWidget 组件 ( Image 组件 | TextField 组件 )
  6. 【APUE】文件 I/O 操作
  7. github上星星1万多的python教程推荐收藏
  8. python学习 day19
  9. 二分图 crf的军训
  10. 关于椭圆的积分变量替换