`
wangpan80
  • 浏览: 108661 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Myeclipse平台struts+hibernate+spring项目开发示例

阅读更多

 

接:Myeclipse开发struts+hibernate+spring新手入门---环境配置
如果您按照上篇文章配置成功,可以进行开发简单的J2EE项目。
开发前准备:
    1、新建项目包:如下图:
         project1.JPG
Dao:数据层;service:逻辑层;web:web展现层。
2、建立好三层架构,部署好包名。建立一个jsp文件,取名为:login.jsp
代码如下:

<% @ 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 " %>  
< HTML >
< HEAD >
< TITLE > test < TITLE >
< HEAD >
< BODY >
< html:form action = " /login "  method = " post " >
 用户名:
< html:text property = " username "  size = " 15 " />   < br >
 密  码:
< html:password property = " password "  size = " 15 " />< br >
 
< html:submit property = " submit1 "  style = " FONT-WEIGHT:bold;COLOR:red " >
          登  录
< html:submit >
 
< html:form >
 
< BODY >
 
< HTML >

3、配置struts-config.xml文件;建立action、formbean;
改配置可以自动生成,使用eclipse进行自动生成,在建立时,如下图,可直接生成对应的action类和formbean类。struts-config.JPG
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
 3 
 4 <struts-config>
 5     <data-sources />
 6     <form-beans>
 7         <form-bean name="LoginForm" type="com.test.web.form.LoginForm" />
 8 
 9     </form-beans>
10 
11     <global-exceptions />
12     <global-forwards />
13     <action-mappings>
14         <action attribute="LoginForm" input="/login.jsp" name="LoginForm" path="LoginAction" scope="request" type="com.test.web.action.LoginAction" validate="true">
15             <forward name="faile" path="faile.jsp" />
16             <forward name="success" path="success.jsp" />
17         </action>
18 
19     </action-mappings>
20 
21     <message-resources parameter="ApplicationResources" />
22 </struts-config>

对应生成的formbean如下代码所示:
 1 import javax.servlet.http.HttpServletRequest;
 2 import org.apache.struts.action.ActionErrors;
 3 import org.apache.struts.action.ActionForm;
 4 import org.apache.struts.action.ActionMapping;
 5 
 6  /** 
 7   * MyEclipse Struts
 8   * Creation date: 11-10-2005
 9   * 
10   * XDoclet definition:
11   * @struts.form name="LoginForm"
12   */
13  public class LoginForm extends ActionForm {
14  
15      /** password property */
16      private String password;
17  
18      /** username property */
19      private String username;
20  
21  
22      /** 
23       * Method validate
24       * @param mapping
25       * @param request
26       * @return ActionErrors
27       */
28      public ActionErrors validate(
29          ActionMapping mapping,
30          HttpServletRequest request) {
31          
32          /**对页面提交的元素进行验证,根据需要进行验证:在struts-config.xml中的 action-mapping配置设置validate="true"
33                * 以下验证才会在页面加载时生效.
34                 */
35                ActionErrors errors = new ActionErrors();
36               if(username==null||username.equals(""))
37               {
38                errors.add("username",new ActionMessage("username.errors"));
39                           return errors;
40                }
41                if(password==null||password.equals(""))
42               {
43                 errors.add("password",new ActionMessage("password.errors"));
44                            return errors;
45               }
46                 return errors;
47      }
48  
49      /** 
50       * Method reset
51       * @param mapping
52       * @param request
53       */
54      public void reset(ActionMapping mapping, HttpServletRequest request) {
55  
56  
57      }
58  
59      /** 
60       * Returns the password.
61       * @return String
62       */
63      public String getPassword() {
64          return password;
65      }
66  
67      /** 
68       * Set the password.
69       * @param password The password to set
70       */
71      public void setPassword(String password) {
72          this.password = password;
73      }
74  
75      /** 
76       * Returns the username.
77       * @return String
78       */
79      public String getUsername() {
80          return username;
81      }
82  
83      /** 
84       * Set the username.
85       * @param username The username to set
86       */
87      public void setUsername(String username) {
88          this.username = username;
89      }
90  
91 }
FormBean中验证后的提示需要在ApplicationResources_zh_CN.properties中配置提示错误信息.
1 username.null.error=\u5462\u79f0\u4e0d\u80fd\u4e3a\u7a7a
2 password.null.error=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a
下面我们需要对WEB展现中对Action进行配置;我们在这里主要是针对登录进行开发.因此在action中需要完成以下步骤:
1、登录验证;验证用户名是否存在。验证该用户的密码是否正确。
2、增加cookie
3、提示登录成功。
在进行Action类的编写过程中,首先我们需要考虑到对数据的操作有如下步骤。
1、验证用户名是否存在,我们在service层需要提供一个接口:
1 Public boolean isExist(String user);
来判断用户名是否存在,同时要考虑该用户名对应的密码是否正确,需要提供接口:
1 Public UserBasicInfo findByUser(String user);
通过用户名来查找相关数据。
在Action中,我们同时要判断根据用户查找的用户密码是否正确。如果正确,增加cookie。并返回正常登录页面。如果用户不存在、该用户输入的密码与数据库中的密码不相符合。则在配置文件ApplicationResources_zh_CN.properties中,进行设置提示报错内容。并在页面中显示。
具体Action代码如下:
 
  1 public ActionForward execute(
  2         ActionMapping mapping,
  3         ActionForm form,
  4         HttpServletRequest request,
  5         HttpServletResponse response) {
  6         ActionMessages errors = new ActionMessages();
  7         /**
  8          * 取得登录用户名与密码
  9          */
 10         LoginForm lf=(LoginForm)form;
 11         UserBasicInfoMgr uu = (UserBasicInfoMgr)getBean("userBasicInfoManager");
 12         /**
 13          * 验证用户名是否存在
 14          */
 15         if(uu.isExists(lf.getUsername()))
 16         {
 17             /**
 18              * 验证该用户密码是否正确
 19              */
 20             if(uu.getBasicInfoByName(lf.getUsername()).getUserpwd().equals(StringUtil.encodePassword(lf.getPassword().trim(),"MD5")))
 21             {
 22                 /**
 23                  * 用户状态为新增未激活,返回登录页面。不允许登录。
 24                  */
 25                 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("1"))
 26                 {
 27                     errors.add("useract",new ActionMessage("user.activate.error"));
 28                     saveErrors(request,errors);
 29                     return mapping.findForward("relogin");
 30                 }
 31                 /**
 32                  * 用户状态为新增待核,返回登录页面。不允许登录。
 33                  */
 34                 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("3"))
 35                 {
 36                     errors.add("usercheck",new ActionMessage("user.check.error"));
 37                     saveErrors(request,errors);
 38                     return mapping.findForward("relogin");
 39                 }
 40                 /**
 41                  * 用户状态为暂时锁定,返回登录页面。不允许登录。
 42                  */
 43                 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("5"))
 44                 {
 45                     errors.add("userlock",new ActionMessage("user.lock.error"));
 46                     saveErrors(request,errors);
 47                     return mapping.findForward("relogin");
 48                 }
 49                 /**
 50                  * 用户状态为已删除,返回登录页面。不允许登录。
 51                  */
 52                 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("6"))
 53                 {
 54                     errors.add("userdel",new ActionMessage("user.del.error"));
 55                     saveErrors(request,errors);
 56                     return mapping.findForward("relogin");
 57                 }
 58                   /**
 59                  * 判断cookie时间。并保存cookie
 60                  */
 61                 Cookie cookies = new Cookie("username", lf.getUsername());
 62                 cookies.setPath("/");
 63                 if(lf.getCookieDate() != null)
 64                 {
 65                     if(lf.getCookieDate().equals("0"))
 66                         cookies.setMaxAge(-1);
 67                     if(lf.getCookieDate().equals("1"))
 68                         cookies.setMaxAge(0x15180);
 69                     if(lf.getCookieDate().equals("2"))
 70                         cookies.setMaxAge(0x278d00);
 71                     if(lf.getCookieDate().equals("3"
分享到:
评论
1 楼 zhouqiang728 2012-05-23  
  

相关推荐

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    在Myeclipse中开发基于Struts、Hibernate和Spring的项目,首先需要正确配置这三个框架的环境,包括安装Myeclipse、下载相关插件和数据库驱动,然后在项目中添加Struts、Hibernate和Spring的支持。接着,根据项目需求...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    文件 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发.doc" 可能包含了详细的步骤、代码示例和截图,帮助读者按照上述流程进行实际操作。对于初学者来说,这是一个很好的学习资源,因为它提供了实践...

    图解MyEclipse配置struts+hibernate+spring

    SSH,即Struts、Hibernate和Spring,是Java开发中常见的三大框架集成,用于构建高效、可维护的Web应用。本教程将基于MyEclipse 6.0,详细讲解如何配置和整合这三大框架,创建一个完整的SSH项目。 ### 1. Struts框架...

    structs+ hibernate +spring 項目

    在这个"Myeclipse平台struts+hibernate+spring项目开发示例"中,我们可以深入理解这三大框架的集成与应用。 1. Struts:这是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架,主要负责处理用户请求...

    基于Struts+Hibernate+Spring的Web_应用开发

    通过本实训指导书的学习与实践,学生将逐步掌握Struts、Hibernate与Spring三种关键技术,并能将其应用于实际项目中,从而具备开发复杂Web应用的能力。这种分阶段的学习方式有助于学生循序渐进地理解各个框架的特点与...

    struts+hibernate+spring整合注册登陆源码

    Struts、Hibernate和Spring是Java开发中非常流行的三大框架,它们各自在Web应用程序的不同层面上发挥作用,共同构建出高效、可维护的系统。Struts主要处理MVC(Model-View-Controller)架构中的控制逻辑,Hibernate...

    struts+hibernate+spring的一个示例程序

    这里介绍一下怎样采用开源的Spring,Hibernate以及Struts构建一个轻量级的架构 实例说明:一个网站登录的例子,比较简单,但能说明各层是如何协调工作的。 工具:jdk1.5,eclipse3.2,myeclipse5.0GA,mysql5.0,...

    MyEclipse的整合Struts+Spring+Hibernate简单例子开发

    - 配置开发环境:参照“Struts+Spring+Hibernate之搭建Eclipse+MyEclipse开发环境”的指南,确保所有必要的库(如struts、spring、hibernate的jar文件)已经添加到项目的类路径中。 2. **添加框架支持** - **...

    jsp+struts+hibernate+myeclipse开发示例

    【JSP+Struts+Hibernate+MyEclipse 开发示例】 这个开发示例是针对初学者设计的,旨在帮助他们理解和掌握Java Web应用开发中的MVC(Model-View-Controller)模式,不过这里并未涉及Spring框架。MVC模式是一种广泛...

    struts2+hibernate+spring开发包

    这个"struts2+hibernate+spring开发包"是为了简化SSH集成的流程,方便开发者快速搭建项目环境。 Struts2作为表现层框架,主要处理HTTP请求和响应,提供了一套强大的Action和Result机制,使得业务逻辑与视图层分离,...

    struts+spring+hibernate

    MyEclipse 是一个强大的Java集成开发环境,它集成了对Struts、Spring和Hibernate的支持,使得开发者能够快速创建和配置SSH项目。这个文档可能包含了项目的创建步骤、配置细节、代码示例等内容,对于初学者来说是一份...

    struts2+hibernate+spring经典整合实例教程

    本文档将详细介绍如何使用 MyEclipse 7.0 开发环境搭建基于 Struts2、Hibernate 和 Spring 的经典整合项目,并通过示例工程 BookShop 来具体演示整个开发流程。此教程将覆盖以下关键知识点: 1. **环境搭建**:包括...

    Spring 2.0 + Struts 1.2 + Hibernate 3.2 + DWR 2.0 的JavaEE应用示例

    该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...

    Spring + Struts + Hibernate 的完整 MyEclipse 项目源码

    这个项目在MyEclipse环境中开发,包含了完整的源代码,为学习和理解这三大框架的协同工作提供了实际示例。 **Spring框架**是Java企业级应用的核心组件,它提供了依赖注入(DI)和面向切面编程(AOP)的功能。在本...

    Struts+Spring+Hibernate整合开发详解

    ### Struts+Spring+Hibernate整合开发详解 #### 一、项目背景与意义 在现代企业级应用开发中,为了提高软件质量和开发效率,通常会采用多种框架进行整合开发。Struts、Spring 和 Hibernate(通常简称 SSH)是三个...

    struts+hibernate+spring开发教程

    【Struts+Hibernate+Spring 开发教程】 在Java企业应用中,传统的EJB技术因其功能强大但配置复杂而闻名。然而,随着Java开源生态的崛起,开发者有了更多选择,例如Struts、Hibernate和Spring组成的SSH(Struts、...

    使用myeclipse集成struts,hibernate,spring的一个示例程序

    ### 使用MyEclipse集成Struts, Hibernate, Spring的示例程序 #### 整体架构介绍 在Java企业级应用开发中,为了降低不同模块之间的耦合度并提高代码的复用性,通常采取分层设计的方法。这不仅有助于模块间的解耦,...

    Spring+Struts+Hibernate.doc

    在IT领域,Spring、Struts和Hibernate是三个非常重要的开源框架,它们分别负责控制层、表现层和持久层的处理,形成了一个强大的企业级应用开发架构。本资料旨在为教师提供一套详尽的Spring+Struts+Hibernate整合教程...

Global site tag (gtag.js) - Google Analytics