- 浏览: 595614 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (263)
- 默认类别 (0)
- STRUTS HIBERNATE (2)
- STRUTS SPRING HIBERNATE (18)
- SOA/WEB service (8)
- PORTAL (3)
- 想法和设计思想 (17)
- SMARTEAM 二次开发 (0)
- ACTIVEBPEL (0)
- ERP (0)
- EAI (0)
- 甲醇汽油 (0)
- webwork freemarker spring hibernate (1)
- 工作流技术研究 (1)
- ROR (5)
- 搜索引擎 (7)
- 3.非技术区 (0)
- 1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (2)
- 2.Java新手区 (2)
- 4.其他技术区 (0)
- ESB (1)
- Petals ESB (6)
- 手机开发 (1)
- docker dedecms (1)
最新评论
-
w630636065:
楼主,期待后续!!!!!!!!
生成文本聚类java实现 (2) -
zilong513:
十分感谢楼主,期待后续。
生成文本聚类java实现 (2) -
qqgoodluck:
可否介绍一下您的选型依据,包括Petal ESB与MULE等E ...
Petals ESB 简介 -
jackiee_cn:
写的比较清楚,学习了
Petals ESB 集群实战 -
忙两夜:
你好,能发一下源代码吗
抓取口碑网店铺资料
三个JAVA文件完成你的MVC应用
- 博客分类:
- STRUTS SPRING HIBERNATE
只需要你三个JAVA类和两个配置文件,就可以完成你的MVC应用,我们就做一个示例吧。
非常报歉,因为老板在,所以前几天落下了这个BLOG,对不起了。
本文以一个登录为例。
第一个JAVA文件
第二个JAVA文件:
第三个JAVA文件;
两个配置文件,
第一个struts-config.xml
第二个XML文件:
applicationContext.xml
其它的POJO使用myeclise插件就会自动生成。
呵呵是不是开发很简单呢,能够节省你多少的工作量呀,如果有兴趣的同志可以共同探讨。
没东西啊
非常报歉,因为老板在,所以前几天落下了这个BLOG,对不起了。
本文以一个登录为例。
第一个JAVA文件
/**============================================================ * 版权: Antbee 版权所有 (c) 2002 - 2006 * 文件: com.antbee.sysmanage.login.action.UserAction * 所含类: UserAction * 修改记录: * 日期 作者 内容 * ============================================================= * 2006-8-28 和巍雅 建立文件 * ============================================================*/ package com.antbee.sysmanage.login.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; 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.apache.struts.validator.DynaValidatorForm; import com.antbee.hibernate.model.AirlineUserInformation; import com.antbee.sysmanage.login.dao.UserDAO; /** * <p> * </p> * * <p> * Copyright: 版权所有 (c) 2002 - 2006 * </p> * <p> * Company: antbee * </p> * * @author @家军 * @version 1.0 */ public class UserAction extends DispatchAction { // 依赖注入 private UserDAO userDAO; public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } /** * * 用户登录 * * @param * @return * @throws */ public ActionForward Login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); DynaValidatorForm LoginActionForm = (DynaValidatorForm) form; AirlineUserInformation User = (AirlineUserInformation) LoginActionForm .get("User"); if (User != null) { String MDpwd = CommonTools.encrypt(User.getPassword()); if (userDAO.Login(User.getLoginName(), MDpwd)) { // 成功登录 // 加载一些session AirlineUserInformation LegalUser = userDAO.GetUser(User .getLoginName()); String LoginName = LegalUser.getLoginName(); String UserName = LegalUser.getUserName(); String UserId = LegalUser.getUserId().toString(); String UserType = LegalUser.getUserType().toString(); String DeptId = LegalUser.getAirlineDepartmentInformation() .getDepartmentId().toString(); String DeptName = LegalUser.getAirlineDepartmentInformation().getDepartmentName(); String RoleId = LegalUser.getSysRoleInfo().getRoleId() .toString(); session.setAttribute("LoginName", LoginName);// 登录名 session.setAttribute("UserName", UserName);// 用户姓名 session.setAttribute("UserId", UserId);// 用户ID session.setAttribute("DeptId", DeptId);// 部门ID session.setAttribute("DeptName", DeptName);// 部门DeptName session.setAttribute("UserType", UserType);// 用户类别 session.setAttribute("RoleId", RoleId);// 角色ID return mapping.findForward("Comein"); } } request.setAttribute("UserMsg", "User.LawLess"); return mapping.findForward("Fail"); } /** * * 用户退出 * * @param * @return * @throws */ public ActionForward LogOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); session.removeAttribute("LoginName");// 登录名 session.removeAttribute("UserName");// 用户姓名 session.removeAttribute("UserId");// 用户ID session.removeAttribute("DeptId");// 部门ID session.removeAttribute("UserType");// 用户类别 session.removeAttribute("RoleId");// 角色ID session.invalidate();// 控件无效 return mapping.findForward("LogOut"); }
第二个JAVA文件:
/**============================================================ * 版权: antbee 版权所有 (c) 2002 - 2006 * 文件: com.antbee.kams.sysmanage.login.dao.UserDAO * 所含类: IUserDAO * 修改记录: * 日期 作者 内容 * ============================================================= * 2006-8-28 @家军 建立文件 * ============================================================*/ package com.antbee.sysmanage.login.dao; import java.util.List; import com.antbee.hibernate.model.AirlineUserInformation; /** * <p></p> * * <p>Copyright: 版权所有 (c) 2002 - 2006</p> * <p>Company: antbee</p> * * @author @家军 * @version 1.0 */ public interface UserDAO { //用户登录 如果是正确的用户名/密码,则返回true,否则返回false public boolean Login(String UserName,String PassWord); //取得用户信息 public AirlineUserInformation GetUser(String LoginName); }
第三个JAVA文件;
/**============================================================ * 版权: antbee 版权所有 (c) 2002 - 2006 * 文件: com.antbee.sysmanage.login.dao.hibernate.UserDAOImpl * 所含类: UserDAOImpl * 修改记录: * 日期 作者 内容 * ============================================================= * 2006-8-28 @家军 建立文件 * ============================================================*/ package com.antbee.sysmanage.login.dao.hibernate; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Set; import org.springframework.orm.ObjectRetrievalFailureException; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.antbee.hibernate.model.AirlineUserInformation; import com.travelsky.kams.sysmanage.login.dao.UserDAO; /** * <p> * </p> * * <p> * Copyright: 版权所有 (c) 2002 - 2006 * </p> * <p> * Company: antbee * </p> * * @author Administrator * @version 1.0 */ public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { /* * (非 Javadoc) * * @see com.travelsky.kams.sysmanage.login.dao.IUserDAO#Login(java.lang.String, * java.lang.String) 用户登录 如果是正确的用户名/密码,则返回true,否则返回false */ public boolean Login(String UserName, String PassWord) { // TODO Auto-generated method stub String finduser = "from AirlineUserInformation as user where user.loginName='" + UserName + "' and user.password='" + PassWord + "'"; List Lfinduser = this.getHibernateTemplate().find(finduser); if (Lfinduser.size() >= 1) { return true; } return false; } /* * (非 Javadoc) * * @see com.travelsky.kams.sysmanage.login.dao.IUserDAO#Login(java.lang.String, * java.lang.String) 取得用户信息 */ public AirlineUserInformation GetUser(String LoginName) { // TODO Auto-generated method stub AirlineUserInformation user = null; String finduser = "from AirlineUserInformation as user where user.loginName='" + LoginName + "'"; List Lfinduser = this.getHibernateTemplate().find(finduser); if (Lfinduser.size() >= 1) { user = (AirlineUserInformation) Lfinduser.get(0); } else { throw new ObjectRetrievalFailureException( AirlineUserInformation.class, LoginName); } return user; } }
两个配置文件,
第一个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 --> <form-beans> <form-bean name="LoginActionForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="User" type="com.antbee.hibernate.model.AirlineUserInformation" /> </form-bean> </form-beans> <!-- 全局异常 --> <global-exceptions> <exception key="error.required" type="org.springframework.dao.DataAccessException" path="/dataAccessFailure.jsp" /> </global-exceptions> <!-- 全局转向 --> <global-forwards> <!-- 所有非法用户返回登录页面 --> <forward name="LoginGo" path="/User.do?method=LogOut"></forward> <!-- 业务规则出错信息提示 --> <forward name="Fail" path="/jsp/common/failed.jsp"></forward> </global-forwards> <!-- 分发控制 --> <action-mappings> <action path="/User" type="org.springframework.web.struts.DelegatingActionProxy" name="LoginActionForm" scope="request" parameter="method" validate="false"> <forward name="UserMenu" path="/jsp/leftMenu.jsp" /> <forward name="Comein" path="/jsp/index.jsp" /> <forward name="LogOut" path="/login.jsp" /> </action> </action-mappings> <!-- 资源文件 --> <message-resources parameter="resources.ApplicationResources" /> <!-- 使用Spring控制事务 --> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="classpath:applicationContext.xml" /> </plug-in> <!-- 使用表单验证共同类validator --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml" /> </plug-in> </struts-config>
第二个XML文件:
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!--Start of Session Factory --> <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> <property name="hibernateProperties"> <props> <prop key="connection.provider_class"> org.hibernate.connection.ProxoolConnectionProvider </prop> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> </props> </property> </bean> <!--End of SessionFactory --> <!--Start of TransactionManager --> <bean id="TransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"> <property name="sessionFactory"> <ref bean="SessionFactory" /> </property> </bean> <!--End of TransactionManager --> <!-- 基本的DAO BEGIN--> <bean id="BaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager"> <ref bean="TransactionManager" /> </property> <property name="proxyTargetClass"> <value>true</value> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- 基本的DAO END --> <!--Start of userDAO --> <bean id="userDAO" class="com.antbee.sysmanage.login.dao.hibernate.UserDAOImpl"> <property name="sessionFactory"> <ref local="SessionFactory" /> </property> </bean> <bean id="userDAOProxy" parent="BaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target"> <ref local="userDAO" /> </property> </bean> <!--End of userDAO --> <!--Start of UserAction --> <bean name="/User" class="com.antbee.sysmanage.login.action.UserAction" singleton="false"> <property name="userDAO"> <ref bean="userDAOProxy" /> </property> </bean> <!--End of AddUserAction --> </beans>
其它的POJO使用myeclise插件就会自动生成。
呵呵是不是开发很简单呢,能够节省你多少的工作量呀,如果有兴趣的同志可以共同探讨。
评论
9 楼
jzx19770812
2006-12-02
不错的文章,很适合我这样的初学者,目前在写个bookstore的例子,正在做事务的配置呢,作者的文章对我很有帮助,谢谢。
:D
其实作者的这三个文件两个配置已经把struts+spring+hibernate应用的关键部分都写出来了,也用不着完整的例子了
:D
其实作者的这三个文件两个配置已经把struts+spring+hibernate应用的关键部分都写出来了,也用不着完整的例子了
8 楼
ouspec
2006-10-10
恩,这个帖子,请等待申诉
7 楼
heweiya
2006-10-09
呵呵,居然被评为垃圾贴,心里倒是不明白了,这个我没有照抄谁家的代码,只是在不断实践中去掉了反复COPY代码而且对实际编码又哆嗦的service层。也就是以前要用的至少5个JAVA文件,还有比较哆嗦的配置文件等。三个JAVA文件好象工作量会减少很多吧。
为什么又有人反对呢?想不明白。
N,可能是标题让人反感吧。
我现在开发就是使用这个结构组织自己的程序的,开发量比较小,正在研究使用ANT来生成尤如rails一样的东东呢。希望ANT出一个scaffold,使用 antbee script/generate controller LoginAction Login LoginOut。
为什么又有人反对呢?想不明白。
N,可能是标题让人反感吧。
我现在开发就是使用这个结构组织自己的程序的,开发量比较小,正在研究使用ANT来生成尤如rails一样的东东呢。希望ANT出一个scaffold,使用 antbee script/generate controller LoginAction Login LoginOut。
6 楼
jigsaw
2006-09-29
楼主真的很强。。。看标题还以为是自己写了个超简单的框架呢。。。
哪怕你把这里的内容拷贝过来也好得多啊
http://csis.pace.edu/~bergin/mvc/mvcgui.html
哪怕你把这里的内容拷贝过来也好得多啊
http://csis.pace.edu/~bergin/mvc/mvcgui.html
5 楼
java虫
2006-09-29
少了service层,其他的没看出来哪有什么简单之处
建议改一下帖子的标题
建议改一下帖子的标题
4 楼
BirdGu
2006-09-29
这是在干嘛?普及Spring?
3 楼
jichongchong
2006-09-27
没东西啊
2 楼
ouspec
2006-09-25
例子呢?
1 楼
毛冬
2006-09-25
例子! 例子!!
发表评论
-
Eclipse当中两种远程调试方法
2011-01-05 11:17 2222基于Maven管理的项目,在eclipse当中有两种调 ... -
[翻译]使用Maven创建google Appengine
2010-05-06 15:35 2125原文请参考:http://www.salientpoin ... -
Not must be hibernate.properties or hibernate.cfg.xml
2010-03-05 13:47 1274Sometimes, Custom have ext ... -
使用yourkit java profiler进行性能分析
2010-01-28 17:00 4422说明: YourKit Java Profile ... -
试用Hibernate二级缓存Ehcache
2010-01-28 15:50 1820Hibernate supports several t ... -
给你的应用加入简易Licence限制
2009-06-01 15:01 3097有的时候,客户会提出这样的需求,他们的应用能不能当 ... -
优化hibernate的一招。
2007-11-09 10:20 1622原来的程序: java 代码 List Lre ... -
JSF+A4J+Spring调用ORACLE存贮过程的拙作
2007-08-17 09:35 2770近一周写了一个简单的工具,本工具是通过Spring ... -
hibernate3.2上使用UserType范例
2007-07-27 13:57 3158仔细看看hibernate的DOC发现不少惊奇的东东 ... -
三个JAVA文件完成jsf+spring+hibernate的集成.
2007-07-16 17:43 3632呵呵,本文章只贡献给哪些走捷径的coder, 开发工具:mye ... -
Myeclise5.5自动生成spring2.0+hibernate3.2+jsf1.1时的错误
2007-07-16 15:25 11117我使用myeclipse5.5分别加入hibernate3.2 ... -
ORACLE SQL语句in超过1000个的处理方法
2007-06-25 16:21 11199表现的情况: sql 代码 Hibernate ... -
EXCEL导入数据库及数据库数据导出到EXCEL
2007-05-18 17:01 15969很久没有发BLOG,呵呵,是因为最近在帮助朋友在做一个项 ... -
近期完成的一个较大的JS验证
2007-03-02 11:18 3575呵呵,近期偶完成的一个较大的JS验证,行家一看就 ... -
使用SSH+Freemarker做新闻发布系统
2007-02-07 17:18 9039最近, ... -
struts标签,请你走开(系列一)
2006-09-25 16:07 4907在项目开发的很多 ... -
用二维数组管理好你零乱的状态、分类和其它常用选项
2006-09-25 15:01 3979在大家的编码过程当中,有没有遇到过这么一种情况,很多零乱的状态 ...
相关推荐
(1) 设计Java的对象类,分别扮演模型(M)、视图(V)和控制器(C)的角色。 (2) 编写JavaApplication或Applet程序,实现上述的三个角色。 (3) 观察三个角色相互间的影响关系。
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
我们在com.telecomjs.yc.controller包下建一个java类WeixinController,如下: package com.telecomjs.yc.controller; import com.github.jweixin.jwx.context.Weixin; import ...
28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程...
该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...
28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...
AspMvc是一个快速、简单的面向对象的轻量级Asp开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。 借鉴了国内外很多优秀的(Java Ssh/Net NetMvc3.5 ThinkPhp)框架和模式,使用面向对象的开发结构和MVC...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...
如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。第8章到第9...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...
第4章到第7章深入探讨了Struts框架的核心组件ActionServlet和 RequestProcessor的实现原理,详细介绍了开发Struts应用的模型、视图和控制器的各种技术,细致的描述了Struts配置文件的每个元素的使用方法。...