您的位置:首页 > 其它

使用SSH框架实现用户登录验证

2012-06-14 16:26 706 查看
今天,写一个非常简单的通过struts+hibernate+spring的集成来实现用户登录验证的例子,让大家了解一下三者是如何是整合的。

我们可以通过myeclipse的向导,生成相应的环境搭建,如果使用向导添加SSH项目支持的话,大家记住我们我们添加的顺序为spring,hibernate,struts,我在这儿就不讲如何通过向导添加了,我会直接把源码给大家,大家按源码编写即可。

第一: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"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<!-- 定义数据源 -->

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"

value="com.mysql.jdbc.Driver">

</property>

<property name="url"

value="jdbc:mysql://192.168.1.90:3306/TestDB">

</property>

<property name="username" value="root"></property>

<property name="password" value="hanxue123"></property>

</bean>

<!-- 定义使用hibernate -->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource">

<ref bean="dataSource" />

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQLDialect

</prop>

<prop key="hibernate.show_sql">true</prop>

</props>

</property>

<!-- 定义映射的文件 -->

<property name="mappingResources">

<value>User.hbm.xml</value>

</property>

</bean>

<!-- 配置事务管理器 -->

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory">

<ref bean="sessionFactory"/>

</property>

</bean>

<!-- 配置事务的传播特性 -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="find*" propagation="REQUIRED"/>

<tx:method name="save*" propagation="REQUIRED"/>

<tx:method name="del*" propagation="REQUIRED"/>

<tx:method name="modify*" propagation="REQUIRED"/>

<tx:method name="update*" propagation="REQUIRED"/>

<tx:method name="*" propagation="REQUIRED"/>

</tx:attributes>

</tx:advice>

<!-- 配置哪些类的哪些方法参与事务 -->

<aop:config>

<aop:pointcut id="allManagerMethod" expression="execution(* com.han.*.*.*(..))"/>

<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>

</aop:config>

<!-- 将业务逻辑对象通过spring注入到Action中,从而避免了在Action类中的直接代码查询 -->

<bean id="loginService" class="com.han.service.LoginServiceImpl">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

<bean name="/loginA" class="com.han.action.LoginA" scope="prototype">

<property name="loginService" ref="loginService"></property>

</bean>

</beans>

第二: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">

<hibernate-mapping package="com.han.forms">

<class name="LoginForm" table="t_user" lazy="false">

<comment>Users may bid for or sell auction items.</comment>

<id name="id">

<generator class="native"/>

</id>

<property name="username"></property>

<property name="password"></property>

</class>

</hibernate-mapping>

第三:struts-config.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

<form-beans>

<form-bean name="loginAF" type="com.han.forms.LoginForm"></form-bean>

</form-beans>

<global-exceptions />

<global-forwards />

<action-mappings>

<action path="/loginA"

name="loginAF"

type="org.springframework.web.struts.DelegatingActionProxy"

scope="request"

input="/index.jsp"

>

<forward name="success" path="/success.jsp"></forward>

<forward name="failed" path="/failed.jsp"></forward>

</action>

</action-mappings>

<message-resources parameter="com.han.struts.ApplicationResources" />

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property

property="pathnames"

value="/org/apache/struts/validator/validator-rules.xml,

/WEB-INF/validation.xml"/>

</plug-in>

</struts-config>

第四:LoginService接口的配置

package com.han.service;

import com.han.forms.LoginForm;

public interface LoginService {

public abstract boolean findlogin(LoginForm user);

}

第五:接口实现的配置

package com.han.service;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.han.forms.LoginForm;

public class LoginServiceImpl extends HibernateDaoSupport implements LoginService {

public boolean findlogin(LoginForm user) {

String hql="from LoginForm where username='"+user.getUsername()+"' and password='"+user.getPassword()+"'";

System.out.println(hql);

List userlist=this.getHibernateTemplate().find(hql);

if (userlist.size()>0) return true;

else return false;

}

}

第六:ActionForm配置

package com.han.forms;

import org.apache.struts.action.ActionForm;

public class LoginForm extends ActionForm {

private int id;

private String username;

private String password;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

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;

}

}

第七:Action配置

package com.han.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

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 org.apache.struts.actions.DispatchAction;

import org.springframework.beans.factory.BeanFactory;

import org.springframework.web.context.support.WebApplicationContextUtils;

import com.han.forms.LoginForm;

import com.han.service.LoginService;

import com.han.service.LoginServiceImpl;

public class LoginA extends DispatchAction {

private LoginService loginService;

public void setLoginService(LoginService loginService) {

this.loginService = loginService;

}

public LoginService getLoginService() {

return loginService;

}

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

LoginForm lf=(LoginForm)form;

System.out.println(lf.getUsername());

//loginService=new LoginServiceImpl();

boolean flag=loginService.findlogin(lf);

System.out.println(flag);

if (flag){

return mapping.findForward("success");

}else{

return mapping.findForward("failed");

}

}

}

第八:登录页面的配置

<%@ page language="java" pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://struts.apache.org/tags-bean"
prefix="bean" %>

<%@ taglib uri="http://struts.apache.org/tags-html"
prefix="html" %>

<%@ taglib uri="http://struts.apache.org/tags-logic"
prefix="logic" %>

<%@ taglib uri="http://struts.apache.org/tags-tiles"
prefix="tiles" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html lang="true">

<head>

<html:base />

<title>index.jsp</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<body>

<html:form action="loginA.do" method="post" >

<table border="0">

<tr>

<td>Login:</td>

<td><html:text property="username" /></td>

</tr>

<tr>

<td>Password:</td>

<td><html:password property="password" /></td>

</tr>

<tr>

<td colspan="2" align="center"><html:submit /></td>

</tr>

</table>

</html:form>

</body>

</html:html>

第九:忘了web.xml文件了,加上

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>3</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>3</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

classpath*:applicationContext.xml

</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

</web-app>

以上设置,通过SSH框架实现了最基础的用户登录功能

本文出自 “快乐分享
博客,请务必保留此出处/article/4225816.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: