一个简单的登陆

首先将在mysql中建立一张表,只有username password,role三个字段。
然后将将框架搭建好。我这里用的是struts1.2 spring2.0 hibernate3.2.。。

user的DAO接口:

package com.jack.model.dao;

import java.util.List;
import com.jack.model.domain.UserInfo;
/**
*
* @author qinjie
* @prject_name login
* @create_time 2010-03-08
*
*/
public interface IUserInfoDAO {
public UserInfo findById(java.lang.String id);
public List findByUsername(Object username);

}




user的DAO实现类


package com.jack.model.dao.impl;

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.jack.model.dao.IUserInfoDAO;
import com.jack.model.domain.UserInfo;


public class UserInfoDAO extends HibernateDaoSupport implements IUserInfoDAO {
private static final Log log = LogFactory.getLog(UserInfoDAO.class);
// property constants
public static final String PASSWORD = "password";
public static final String ROLE = "role";
public static final String USERNAME = "username";

protected void initDao() {
// do nothing
}

public UserInfo findById(java.lang.String id) {
log.debug("getting UserInfo instance with id: " + id);
try {
UserInfo instance = (UserInfo) getHibernateTemplate().get(
"com.jack.model.domain.UserInfo", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}

public List findByProperty(String propertyName, Object value) {
log.debug("finding UserInfo instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from UserInfo as model where model."
+ propertyName + "= ?";
return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}

public List findByUsername(Object username) {
// TODO Auto-generated method stub
return findByProperty(USERNAME, username);
}

}


以下是user对应的一个实体类,也就是hibernate关系的那个实体。


package com.jack.model.domain;
/**
* UserInfo entity.
* @author qinjie
*/
public class UserInfo implements java.io.Serializable {
// Fields
private String username;
private String password;
private Integer role;
// Constructors
/** default constructor */
public UserInfo() {
}
/** minimal constructor */
public UserInfo(String username, String password) {
this.username = username;
this.password = password;
}
/** full constructor */
public UserInfo(String username, String password, Integer role) {
this.username = username;
this.password = password;
this.role = role;
}
// Property accessors
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getRole() {
return this.role;
}
public void setRole(Integer role) {
this.role = role;
}
}

接下,请看以下的是数据库对应和实体类的关系关联文件。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.jack.model.domain.UserInfo" table="user_info" >
<id name="username" type="java.lang.String">
<column name="username" length="30" />
<generator class="assigned" />
</id>
<property name="password" type="java.lang.String">
<column name="password" length="30" not-null="true" />
</property>
<property name="role" type="java.lang.Integer">
<column name="role" />
</property>
</class>
</hibernate-mapping>



下来就是写服务接口和实现类型:
service接口....

package com.jack.model.service;

import com.jack.model.domain.UserInfo;

public interface IUserService {
public UserInfo findByUsername(String name);
}



service实现类:

package com.jack.model.service.impl;

import com.jack.model.dao.IUserInfoDAO;
import com.jack.model.domain.UserInfo;
import com.jack.model.service.IUserService;

public class UserService implements IUserService{
//ע��dao
private IUserInfoDAO userInfoDAO;
public UserInfo findByUsername(String name) {
// TODO Auto-generated method stub
if (userInfoDAO.findByUsername(name).isEmpty()) {
return null;//���ؿ�ֵ
} else {
return (UserInfo)userInfoDAO.findByUsername(name).get(0);
}
}

public void setUserInfoDAO(IUserInfoDAO userInfoDAO) {
this.userInfoDAO = userInfoDAO;
}

}


Action类如下:

package com.jack.view.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


import com.jack.model.domain.UserInfo;
import com.jack.model.service.IUserService;
import com.jack.view.form.LoginForm;

public class LoginAction extends Action{
private IUserService userService;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
HttpSession session = request.getSession();
UserInfo user =(UserInfo)userService.findByUsername(loginForm.getUsername());
if(user!= null && (user.getPassword()).equals(loginForm.getPassword())){
session.setAttribute("ww", user.getUsername());
if(user.getRole().equals(0))
{
return mapping.findForward("success1");
}
if(user.getRole().equals(1))
{
return mapping.findForward("success");
}
}
else{
return mapping.findForward("fail");
}
return null;
}

public void setUserService(IUserService userService)
{
this.userService=userService;
}
}



struts的formBean如下:

package com.jack.view.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public class LoginForm extends ActionForm {

private String username;
private String password;

public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
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;
}
}

最后将配置文件写好,将他们之间的关系关联起来就可以跑了
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


<bean id="sessionFactory"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
</bean>
<bean id="mysession"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="sessionFactory" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/jack/model/domain/UserInfo.hbm.xml</value>
</property></bean>
<bean id="UserInfoDAO" class="com.jack.model.dao.impl.UserInfoDAO">
<property name="sessionFactory">
<ref bean="mysession" />
</property>
</bean>
<bean id="UserService" class="com.jack.model.service.impl.UserService">
<property name="userInfoDAO">
<ref bean="UserInfoDAO"/>
</property>
</bean>
<bean name="/login" class="com.jack.view.action.LoginAction">
<property name="userService">
<ref bean="UserService"/>
</property>
</bean>
</beans>


一下是struts-config.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.jack.view.form.LoginForm"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
attribute="loginForm" input="/login.jsp" name="loginForm" path="/login"
scope="request" type="org.springframework.web.struts.DelegatingActionProxy"
validate="false" >
<forward name="success" path="/shows.jsp" />
<forward name="fail" path="/failed.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>



最后写登陆页面

<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>welcome</title>
<script type="text/javascript">
function checkForm(form)
{
//检查用户名和密码是否为空的一个功能函数
if(form.username.value=="")
{
alert("用户名不能为空");
form.username.focus();
return false;
}

if(form.password.value=="")
{
alert("密码不能为空");
form.password.focus();
return false;
}
return true;
}


</script>
</head>
<body>
<center>
<html:form action="login.do" onsubmit="return checkForm(this);">
<h1>
<font color=#ff>欢迎登录在*****系统</font>
</h1>
用户名:<html:text property="username"></html:text>
<html:errors property="username" />
<br>
<br>
密  码:
<html:password property="password" />
<html:errors property="password" />
<br>
<br>
<html:submit value="登录" />
    
<html:cancel value="取消" />
</html:form>

</center>
</body>
</html>


另外在写两个页面分别命名为shows.jsp和failed.jsp就可以测试了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值