struts2+Hibernate实现用户登陆功能
实现的功能,在登陆页面输入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实现用户登陆功能相关推荐
- python编程用户登陆c_django实现用户登陆功能详解
简介: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python ...
- 需求说明 用户登陆功能的实现 c#
需求说明 用户登陆功能的实现 c# 需求说明 新建一个用户数据表 添加一个管理员的用户 编写一个c#的程序 接收用户输入的帐号与密码 提交后查询数据库 如果查询成功 提示登陆成功 否则提示登陆不成功 ...
- session实现用户登陆功能
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...
- 基于springmvc+mysql+mybatis实现用户登陆功能
最近在学习springmvc框架,每天的学习过程中颇有一些收获,打算写一篇博客记录一下,也希望能帮到同样在学这个的人. 一:Springmvc 1:SpringMVC的组成结构: (1)前端控制器(D ...
- 自动化测试(二)如何用python写一个用户登陆功能
需求信息: 写一个判断登录的程序: 输入: username password 最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限 需要判断输入是否为空,什么也不输入,输入一个空格.n个 ...
- 实现登陆功能——用户登录设计
1.用户表字段: 用户ID 用户密码 用户名 salt 头像 注册时间 上次登陆时间 登陆次数 id password nickname salt head register_date last_lo ...
- 第六天 黑马十次方 用户注册、用户登陆掌握js-cookie、微信扫码登陆、nuxt嵌套路由
学习目标: ** 完成用户注册功能 完成用户登陆功能,掌握js-cookie的使用 完成微信扫码登陆的功能 完成用户中心嵌套布局,掌握nuxt嵌套路由的使用 ** 1 用户注册 1.1 页面构建 创建 ...
- jsp的MVC模式设计用户登陆注册
jsp的MVC模式设计用户登陆注册 用户登陆功能 1.实验内容 2.实验步骤 3.实验结果 4.实验分析 用户登陆功能 通过设计用户的登陆和注册,来学习jsp的MVC模式,熟练掌握MVC模式各部分的内 ...
- 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)
一.概述 从今天才开始有时间来总结总结以前自己练习的一些东西,希望总结出来对以后可以更加便捷的来学习,也希望可以帮助到正需要这些东西的同行人,一起学习,共同进步. 二. 登录功能总结 2.1.登录功能 ...
最新文章
- python有哪些关键字?让他自己“吐”出来!
- SQL性能优化之索引优化法
- 自己写的一个tomcat发布脚本
- Docker Review - docker 容器 常用命令
- 批量将图片保存到模拟器
- 我的领域驱动设计运用实例 - 领域啊领域
- Elasticsearch7.X 字段数据类型
- 张莉python 玩转数据答案_中国大学MOOC(慕课)用Python玩转数据答案大全
- 动态三角形(动态规划思想入门)
- php 框架测试,PHP测试框架PHPUnit组织测试操作示例
- Uber和Lyft推个人验证PIN码功能降接送混乱
- Java 登录拦截器
- 14款CSS3图片层叠切换动画
- 华硕老毛子(Padavan)——锐捷6.41,静态ip,学生破解过程分享,非专业仅供参考,啰嗦的一批,有耐心能看懂
- 如何批量将 webp 格式的图片转换为 jpg 格式
- 【Web前端】HTML—6.表单标签
- 14道初级程序员进阶中高级的必经环节
- iphone进入安全模式及退出安全模式的方法
- 英特尔平台安装黑苹果
- 下载Windows ISO镜像的方法 (超详细 适合新手入门)
热门文章
- 操作系统原理第九章:虚拟内存
- 【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )
- 【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
- 【Java 虚拟机原理】垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )
- 【Flutter】StatefulWidget 组件 ( Image 组件 | TextField 组件 )
- 【APUE】文件 I/O 操作
- github上星星1万多的python教程推荐收藏
- python学习 day19
- 二分图 crf的军训
- 关于椭圆的积分变量替换