`

Dwr2+Struts2+Spring2.5+Hibernate3完美整合--用户登录注册系统

阅读更多
  用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统。
  其中用Dwr去进行用户注册的用户是否存在的验证。
  全部业务控制交由Spring去进行处理。事务处理也交由Spring去管理。
  压缩文件中不包含Jar文件(由于全部的Jar将近12M,不能全部上传),所用到的Jar目录为,工程中再也不会出现由于MyEclipse自动整合而出现的大量Jar文件

//如果不用,启动时不会出错,但使用Dwr时,会抛出异常:java.lang.NoClassDefFoundError: antlr/ANTLRException
antlr-2.7.2.jar 

//如果不用此包,在启动时会抛出: nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
asm.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
aspectjweaver.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
cglib-2.1.3.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
commons-collections-3.1.jar

//这个似乎可以不用的
commons-fileupload-1.2.1.jar

//这个就不用说啦,几乎所有框架都要使用的
commons-logging-1.0.4.jar 

//如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
dom4j-1.6.1.jar

//dwr必须
dwr.jar 


//不用此包,在启动时招聘:java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
jta.jar

//Mysql JDBC驱动
mysql-connector.jar

//Hibernate必须使用,注意此包是包含全部的。
hibernate3.jar

//Spring整体包
spring.jar            

//struts2必须               
freemarker-2.3.8.jar   
//struts2必须
ognl-2.6.11.jar       
//struts2核心包
struts2-core-2.0.11.2.jar
//struts2整合Spring插件  
struts2-spring-plugin-2.0.11.2.jar 
//struts2必须
xwork-2.0.5.jar 


  数据库设计(使用MySql数据库):
create table user
(
  id varchar(32) not null,
  userName varchar(20),
  password varchar(20),
  primary key(id)
);
create table user_infor
(
  id varchar(32) not null,
  user_id varchar(32),
  name varchar(20),
  email varchar(30),  
  sex char,
  age int,
  address varchar(300),
  primary key(id)
);
ALTER TABLE user_infor
    ADD FOREIGN KEY(user_id) 
    REFERENCES user(id)
    ON DELETE CASCADE;

由于没有包含全部的Jar文件,所以朋友需要把上面所述的Jar加载。
如果有需要Jar文件的朋友可以发邮件给我:jackzhangyunjie@163.com,我会把所有Jar文件发给大家。
也可以去我的网站下载:http://www.52cfml.com/post/usersystem.html
  • UserSystem.rar (35.8 KB)
  • 描述: 压缩文件中不包含Jar文件。
  • 下载次数: 5409
分享到:
评论
82 楼 jxzchh 2009-05-14  
我要所有的JAR包,希望楼主能发发一份,谢谢,留个邮箱:zhangch@cacshanghai.com
81 楼 zhxing 2009-05-12  
<bean id="loginAction" class="com.jack.user.action.LoginAction">
<property name="userServices" ref="userServices"/>
</bean>

strust2 中的action 不是要设成多例的嘛?
singleton="false"  应该加上这个才对吧

ps:这么老的帖子还给人翻出来。。
80 楼 huangbq 2009-05-12  
HTTP Status 404 - /UserSystem/

--------------------------------------------------------------------------------

type Status report

message /UserSystem/

description The requested resource (/UserSystem/) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.13
79 楼 huangbq 2009-05-12  
我在MyEclipse中载入了该工程,并且把需要的包都加入到lib下,出现这样的问题(见附件)。请帮忙解决一下,看哪儿有问题,谢谢!
78 楼 wuji0301cata 2009-04-07  
有空给我发jar包,多谢!~~~wuji0301cata@163.com
77 楼 reckyxaut 2009-02-25  
liuniangang@revenco.com
多谢~~~
76 楼 linyang2903 2009-02-18  
linyang2903@sina.com给我所有的JAR
75 楼 zznj1123 2009-02-13  
请问楼主:
在servicesContext.xml中一段配置一直没弄明白。
代码段:
<!-- Struts2的Action交由Spring控制 -->
<bean id="loginAction" class="com.jack.user.action.LoginAction">
<property name="userServices" ref="userServices"/>
</bean>

在这里,spring是怎么注入Struts2的Action?
我没看到其他地方有那个struts2-spring-plugin的相关配置啊?
奇怪了!
74 楼 sdtzyb 2009-02-12  
Document root element "beans", must match DOCTYPE root "null".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(XMLDTDValidator.java:1652)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1931)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:795)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:878)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(XMLDocumentScannerImpl.java:1157)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:222)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:128)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:144)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:262)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
出现这个错误我已经检查spring是2.0 为什么还会错,麻烦你发一下lib吧 yubin66@gmail.com
73 楼 lxclbjn 2009-01-18  
<p>LZ 你好 :</p>
<p>      我是一个新手  才工作J2EE 3个月 一直用的Struts1.2 1.38 有几个问题想请教你一下 希望可以看到你的精彩言论!!!先谢!</p>
<p>      你的XML文件 </p>
<p>applicationContext.xml </p>
<p>dao.xml </p>
<p>hibernate.cfg.xml </p>
<p> servicesContext.xml</p>
<p> (由于太长我就不写里面具体内容)</p>
<p>新手的原因 一直套现用 我之前用的1.2和1.38整合 是这样写的如下(和你不是一个web工程 看了就懂)</p>
<pre name="code" class="java">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;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"&gt;

&lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt;
&lt;property name="driverClassName"&gt;
&lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;
&lt;/property&gt;
&lt;property name="url"&gt;
&lt;value&gt;jdbc:mysql://localhost:3306/123&lt;/value&gt;
&lt;/property&gt;
&lt;property name="username"&gt;
&lt;value&gt;root&lt;/value&gt;
&lt;/property&gt;
&lt;property name="password"&gt;
&lt;value&gt;lenovo&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;

&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;
&lt;property name="dataSource"&gt;
&lt;ref local="dataSource"/&gt;
&lt;/property&gt;
&lt;property name="hibernateProperties"&gt;
&lt;props&gt;

&lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;
&lt;/props&gt;
&lt;/property&gt;

&lt;property name="mappingResources"&gt;
&lt;list&gt;
&lt;value&gt;com/lenovo/bean/User.hbm.xml&lt;/value&gt;
&lt;/list&gt;
&lt;/property&gt;
&lt;/bean&gt;

&lt;bean id="logindao" class="com.lenovo.dao.impl.LoginDaoImpl"&gt;
&lt;property name="sessionFactory"&gt;
&lt;ref local="sessionFactory"/&gt;
&lt;/property&gt;
&lt;/bean&gt;

&lt;bean name="/login" class="com.lenovo.action.LoginAction"&gt;
&lt;property name="dao"&gt;
&lt;ref local="logindao"/&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;/beans&gt;</pre>
<p> </p>
<p>spring 支持hibernate 所以我连接数据库和dao 就合成在applicationContex.xml里了 </p>
<p> </p>
<p>你最后一个servicesContext.xml 大概内容如下</p>
<pre name="code" class="java"> &lt;import resource="classpath:com/jack/user/config/dao.xml"/&gt;
&lt;bean id="userServices" class="com.jack.user.model.impl.UserServices"&gt;
&lt;property name="userDAO" ref="UserDAO"/&gt;
&lt;/bean&gt;
&lt;!-- Struts2的Action交由Spring控制 --&gt;
&lt;bean id="loginAction" class="com.jack.user.action.LoginAction"&gt;
&lt;property name="userServices" ref="userServices"/&gt;
&lt;/bean&gt;
&lt;!-- 事务处理 --&gt;
&lt;bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;
&lt;property name="sessionFactory" ref="sessionFactory"&gt;&lt;/property&gt;
&lt;/bean&gt;

&lt;!-- 事务控制 --&gt;
&lt;tx:advice id="txAdvice"
transaction-manager="transactionManager"&gt;
&lt;tx:attributes&gt;
&lt;tx:method name="save*" propagation="REQUIRED" /&gt;
&lt;tx:method name="update*" propagation="REQUIRED" /&gt;
&lt;tx:method name="remove*" propagation="REQUIRED" /&gt;
&lt;tx:method name="get*" read-only="true" /&gt;
&lt;/tx:attributes&gt;
&lt;/tx:advice&gt;

&lt;aop:config&gt;
&lt;!-- 管理事务操作 --&gt;
&lt;aop:pointcut id="servicesPointcut"
expression="execution(* com.jack.user.model.*.*(..))" /&gt;
&lt;aop:advisor advice-ref="txAdvice"
pointcut-ref="servicesPointcut" /&gt;
&lt;/aop:config&gt;
&lt;/beans&gt;</pre>
<p> </p>
<p>我就看不明白了  还希望你能指点一下 </p>
<p> </p>
<p> </p>
<p>还有我的action里的写法和你有很大不同 我基本是这样写的 难道是struts2就用你那样写了?</p>
<p> </p>
<pre name="code" class="java">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 com.lenovo.bean.User;
import com.lenovo.dao.LoginDao;

public class LoginAction extends Action {
private LoginDao dao;

public LoginDao getDao() {
return dao;
}

public void setDao(LoginDao dao) {
this.dao = dao;
}

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

String username=request.getParameter("username");
String password=request.getParameter("password");
User user=dao.Query(username,password);
if(user!=null)
{
request.getSession().setAttribute("user", user);

return mapping.findForward("Ok");

}else
{
request.setAttribute("ERROR","用户名,密码错误");
return mapping.findForward("No");
}

}</pre>
<pre name="code" class="java">我目前用到的struts就是取代servlet的 其他还没用过  很不好意思说出来 哈哈 </pre>
<pre name="code" class="java">我还在学习阶段 望大家多多指点  知识最正确的发展方向就是像sun一样开源 我坚信 有容乃大  </pre>
<pre name="code" class="java">期待你们的精彩评语  </pre>
<pre name="code" class="java"></pre>
<pre name="code" class="java"></pre>
<p> </p>
72 楼 deepsea0001 2009-01-10  
你好 能给我一份么?
e.ooceo@gmail.com
71 楼 rob_sky 2008-12-29  
jackzhangyunjie 写道
  用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统。
  其中用Dwr去进行用户注册的用户是否存在的验证。
  全部业务控制交由Spring去进行处理。事务处理也交由Spring去管理。
  压缩文件中不包含Jar文件(由于全部的Jar将近12M,不能全部上传),所用到的Jar目录为,工程中再也不会出现由于MyEclipse自动整合而出现的大量Jar文件

//如果不用,启动时不会出错,但使用Dwr时,会抛出异常:java.lang.NoClassDefFoundError: antlr/ANTLRException
antlr-2.7.2.jar 

//如果不用此包,在启动时会抛出: nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
asm.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
aspectjweaver.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
cglib-2.1.3.jar

//如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
commons-collections-3.1.jar

//这个似乎可以不用的
commons-fileupload-1.2.1.jar

//这个就不用说啦,几乎所有框架都要使用的
commons-logging-1.0.4.jar 

//如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
dom4j-1.6.1.jar

//dwr必须
dwr.jar 


//不用此包,在启动时招聘:java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
jta.jar

//Mysql JDBC驱动
mysql-connector.jar

//Hibernate必须使用,注意此包是包含全部的。
hibernate3.jar

//Spring整体包
spring.jar            

//struts2必须               
freemarker-2.3.8.jar   
//struts2必须
ognl-2.6.11.jar       
//struts2核心包
struts2-core-2.0.11.2.jar
//struts2整合Spring插件  
struts2-spring-plugin-2.0.11.2.jar 
//struts2必须
xwork-2.0.5.jar 


  数据库设计(使用MySql数据库):
create table user
(
  id varchar(32) not null,
  userName varchar(20),
  password varchar(20),
  primary key(id)
);
create table user_infor
(
  id varchar(32) not null,
  user_id varchar(32),
  name varchar(20),
  email varchar(30),  
  sex char,
  age int,
  address varchar(300),
  primary key(id)
);
ALTER TABLE user_infor
    ADD FOREIGN KEY(user_id) 
    REFERENCES user(id)
    ON DELETE CASCADE;

由于没有包含全部的Jar文件,所以朋友需要把上面所述的Jar加载。
如果有需要Jar文件的朋友可以发邮件给我:jackzhangyunjie@163.com,我会把所有Jar文件发给大家。

70 楼 Alexiain 2008-12-20  
严重: Exception starting filter struts2
Caught exception while loading file struts-default.xml - [unknown location]

Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)


struts2 spring2.5 整合 Hibernate3.1 加载 jta.jar 后报错.

请问,有什么好的方法解决吗?
69 楼 specter_2001 2008-11-11  
commons-fileupload-1.2.1.jar
确实可以不用
68 楼 specter_2001 2008-11-11  
一次性复制,通过!太帅了!
67 楼 specter_2001 2008-11-11  
太感谢了,正愁没有实例呢。
66 楼 specter_2001 2008-11-11  
太感谢了,正愁没有实例呢。
65 楼 zgmws1978 2008-11-11  
不错的实例,不错的实力!能否发给我lib包 125net@163.com 谢谢!
64 楼 zcjava 2008-10-23  
...........貌似没有数据库脚本啊。
63 楼 asticx 2008-10-22  
ThinkingInAll 写道
完美整合?
dwr能解决hibernate lazy的问题那?


确实,本来期待能在这个sample中看到这方面的solution,可惜失望了...

现在被dwr的lazy搞的很郁闷

相关推荐

Global site tag (gtag.js) - Google Analytics