Eclipse用SSH框架实现登陆注册功能
来源:互联网 发布:女程序员标准装扮 编辑:程序博客网 时间:2024/05/21 00:53
Eclipse用SSH框架实现登陆注册功能
第一次写博文,写的不好的地方还请多多指教。
关于SSH搭建大家可以看这篇博文,讲的很详细,是搭建SSH框架具有注册功能的例子http://blog.csdn.net/lpftobetheone/article/details/17783791
我也是第一次搭SSH框架参考这篇博文成功搭起来后也可以运行,但是其中的具体逻辑我还是不太懂,所以自己决定在此基础上增加登录的功能来进行摸索学习。
我先说一下每个类的功能:
dao是提供与数据库交互读取数据的接口
daoimpl是实现dao接口的
service是提供具体业务服务的接口
serviceimpl同样是实现接口的
service接口里提供了业务逻辑,serviceimpl具体实现这些业务逻辑,通过调用dao接口里的方法来读取数据库中的数据。最后在action中调用service接口里的业务逻辑,然后把从数据库中取出的数据赋给action中的属性。这样,struts2框架就能从页面中接受后台传来的数据,显示出来了。
下面来说具体过程:
大概流程:Login.jsp—->LoginAction.java—>UserManager.java中的logUser方法—>BaseDao.java中的queryObject方法
最后登录的用户名和密码是否正确是根据queryObject方法的返回值在LoginAction.java中判断的
- 先定义Login.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ 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=UTF-8"><title>Insert title here</title></head><body> <s:form action="login" > <s:textfield name="user.username" label="用户名" class="txt"></s:textfield> <s:password name="user.password" label="密码" class="txt"></s:password> <s:submit value="登录" lass="btn"></s:submit> </s:form></body></html>
- 然后新建LoginAction.java
package com.ynwi.ssh.action;import com.opensymphony.xwork2.ActionSupport;import com.ynwi.ssh.forms.UserForm;import com.ynwi.ssh.service.UserManager;public class LoginAction extends ActionSupport{ private static final long serialVersionUID=1L; private UserForm user; private UserManager userManager; public UserForm getUser() { return user; } public void setUser(UserForm user) { this.user = user; } public void setUserManager(UserManager userManager) { this.userManager = userManager; } public String execute() { try { //this.setUserManager(new UserManagerImpl()); boolean a=userManager.logUser(user); if(a==true) return SUCCESS; else return ERROR; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return ERROR; } }}
- 在struct2.xml中添加action
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="ynwi" namespace="/" extends="struts-default"> <!-- 注册 --> <action name="register" class="regAction"> <result name="input">/Register.jsp</result> <result name="success">/Login.jsp</result> <result name="error">/Fail.jsp</result> </action> <!-- 登录 --> <action name="login" class="logAction"> <result name="input">/Login.jsp</result> <result name="success">/Success.jsp</result> <result name="error">/Fail.jsp</result> </action> </package></struts>
- 在applicationContext.xml中写用户登录action的bean
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 定义用户数据源的信息 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value>jdbc:mysql://localhost/test</value> </property> <property name="user"> <value>root</value> </property> <property name="password"> <value>199394</value> </property> <property name="maxPoolSize"> <value>80</value> </property> <property name="minPoolSize"> <value>1</value> </property> <property name="initialPoolSize"> <value>1</value> </property> <property name="maxIdleTime"> <value>20</value> </property> </bean> <!--定义Hibernate的SessionFactory --> <!-- SessionFactory使用的数据源为上面的数据源 --> <!-- 指定了Hibernate的映射文件和配置信息 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/ynwi/ssh/beans/User.hbm.xml</value> <value>com/ynwi/ssh/beans/Admin.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="show_sql">true</prop> <prop key="hibernate.jdbc.batch_size">20</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="baseDao" class="com.ynwi.ssh.daoImpl.UserDao"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!--用户注册业务逻辑类 --> <bean id="userManager" class="com.ynwi.ssh.serviceImpl.UserManagerImpl"> <property name="dao"> <ref bean="baseDao" /> </property> </bean> <!-- 用户注册的Action --> <bean id="regAction" class="com.ynwi.ssh.action.RegisterAction"> <property name="userManager"> <ref bean="userManager" /> </property> </bean> <!-- 用户登录的Action --> <bean id="logAction" class="com.ynwi.ssh.action.LoginAction"> <property name="userManager"> <ref bean="userManager" /> </property> </bean></beans>
- 在BaseDao.java中写登录查询的接口
package com.ynwi.ssh.dao;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Session;import com.ynwi.ssh.beans.User;import com.ynwi.ssh.beans.Event;import com.ynwi.ssh.beans.Admin;public interface BaseDao { //注册 public void saveObject(Object obj) throws HibernateException; //登录 public boolean queryObject(User obj) throws HibernateException;}
- 在UserDao中写接口的具体实现
package com.ynwi.ssh.daoImpl;import java.util.List;import org.hibernate.HibernateException;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ynwi.ssh.dao.BaseDao;import com.ynwi.ssh.forms.UserForm;import com.ynwi.ssh.beans.Admin;import com.ynwi.ssh.beans.Event;import com.ynwi.ssh.beans.User;public class UserDao extends HibernateDaoSupport implements BaseDao{ //注册 @Override public void saveObject(Object obj) throws HibernateException { // TODO Auto-generated method stub getHibernateTemplate().save(obj); } //登录 @Override public boolean queryObject(User obj) throws HibernateException { // TODO Auto-generated method stub String hql="from User where username='"+obj.getUsername()+"' and password='"+obj.getPassword()+"'"; System.out.println(obj.getUsername()); System.out.println(obj.getPassword()); List userlist=this.getHibernateTemplate().find(hql); if (userlist.size()>0) { System.out.println("登录成功"); return true; } else { System.out.println("登录失败"); return false; } }}
- 在UserManager.java中写登录的接口
package com.ynwi.ssh.service;import java.util.List;import com.sun.org.apache.xpath.internal.operations.Bool;import com.ynwi.ssh.forms.UserForm;import com.ynwi.ssh.forms.AdminForm;import com.ynwi.ssh.beans.Event;import com.ynwi.ssh.beans.User;public interface UserManager { //注册 public void regUser(UserForm user); //登录 public boolean logUser(UserForm user);}
- 在UserManagerImpl.java中写具体的实现
package com.ynwi.ssh.serviceImpl;import java.util.List;import org.hibernate.HibernateException;import org.springframework.beans.BeanUtils;import com.sun.org.apache.xpath.internal.operations.Bool;import com.ynwi.ssh.beans.Event;import com.ynwi.ssh.beans.User;import com.ynwi.ssh.beans.Admin;import com.ynwi.ssh.dao.BaseDao;import com.ynwi.ssh.forms.AdminForm;import com.ynwi.ssh.forms.EventForm;import com.ynwi.ssh.forms.UserForm;import com.ynwi.ssh.service.UserManager;public class UserManagerImpl implements UserManager{ private BaseDao dao; public void setDao(BaseDao dao) { this.dao=dao; } //注册 @Override public void regUser(UserForm userForm) throws HibernateException { // TODO Auto-generated method stub User user=new User(); BeanUtils.copyProperties(userForm, user); //session=HibernateSessionFactory.currentSession(); //dao.setSession(session); // 获取事务 // Transaction ts = session.beginTransaction(); // 构造User对象 // User user = new User(); // user.setUsername(userForm.getUsername()); // user.setPassword(userForm.getPassword()); // user.setGender(userForm.getGender()); // 保存User对象 dao.saveObject(user); // 提交事务 //ts.commit(); // 关闭Session // HibernateSessionFactory.closeSession(); } //登录 @Override public boolean logUser(UserForm userForm) throws HibernateException{ // TODO Auto-generated method stub User user=new User(); BeanUtils.copyProperties(userForm, user); boolean a=dao.queryObject(user); return a; }}
至此登录功能就已经完成,我会上传我的项目ZIP,需要的小伙伴可以请点击这里下载查看,一起学习,错误的地方请指出。
- Eclipse用SSH框架实现登陆注册功能
- django实现登陆注册功能
- 三层架构实现登陆注册功能
- javaWeb注册,登陆,注销功能的实现
- android实现登陆注册记住密码功能
- C语言实现简单注册登陆功能
- Struts2和hibernate框架整合实现简单的注册登陆功能
- 运用struts2框架实现登陆注册
- 整合SSH--登陆注册
- 用leancloud的登陆注册功能
- 搭建SpringMVC框架,实现简单登陆功能
- 自定义Struts框架实现登陆功能
- Eclipse+struts2+spring整合实现登陆功能
- 用集合框架实注册和登陆
- ThinkPHP5框架集成第三方登陆SDK实现登陆功能
- (Android实战系统一)对话框实现登陆注册功能
- Nodejs连接MySQL&&实现unity中的登陆注册功能
- java collection 之用法,登陆注册功能的实现
- hibernate简单入门
- ibatis与mybatis区别,hibernate、mybatis、JDBC区别
- leetcode解题61. Rotate List java版(旋转链表)
- Centos7下相关网络配置
- HTML5常用标签 01
- Eclipse用SSH框架实现登陆注册功能
- Ubuntu 修改终端显示的主机名和用户名
- 腾讯Bugly-热更新破解记录
- Tesseract-OCR 字符识别---样本训练
- 源码阅读--RxJava(三)
- 图灵机停机问题的不可判定性
- 函数书写方式
- Ubuntu安装chrome
- (转)Android开发-Activity中finish() onDestroy() 和System.exit()的区别