`
frand_feng
  • 浏览: 19715 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

struts框架总结

 
阅读更多

    学习了一天的struts2架构了,现在简单的总结一下:

    Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品,所以struts2的一个重要的优点就是可以将软件层次分开。

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

    一般要做一个网站,都要遵循MVC的框架,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构。

    要分析一个网站,按照我们人类的思维,都会从可视化的界面分析开始,现在我们根据V-C-M的顺序来研究一下以上两节中做的Demo。

    首先是View层,主要有两个界面,一个是login.jsp,另一个是register.jsp,两个文件里边分别有一个表单,每个表单都有一个action行为,如action="loginAction",当点击summit按钮的时候会触发,到底会触发哪个类的哪个函数呢,这个在struts.xml的文件里会有映射的类和方法,比如:

<action name="loginAction"
			class="com.dianzi.action.login.LoginAction" method="login">
			<result name="success">/jsp/login/success.jsp</result>
			<result name="input">/jsp/login/login.jsp</result>
			<result name="error">/jsp/error.jsp</result>
		</action>

 就是所映射的类和方法,表明当点击summit时,会触发loginAction行为,在映射文件中又将loginAction行为映射给了com.dianzi.action.login.LoginAction的类的login方法。

    然后就是Controller层了,在View层中点击事件,通过映射文件将其行为传给Controller层,在此层中会做一些逻辑处理,如:

public String login() {
		User user = new User(username, password);
		int state = userDao.login(user);
		System.out.println("state=" + state);
		if (state == -1) {
			this.addFieldError("username", "用户名不正确,请先注册!");
			return INPUT;
		} else if (state == -2) {
			this.addFieldError("password", "密码不正确,请重新输入密码!");
			return INPUT;
		} else if (state > 0) {
			System.out.println("[测试]登录成功!用户ID=" + state);
			this.setId(state);
			return SUCCESS;
		} else {
			this.addFieldError("username", "登录失败,请与管理员联系!");
			return INPUT;
		}
	}

 此逻辑处理就是用输入的用户名和密码创建一个User对象,生成User对象后就会和我们Model层的数据结构映射起来。

public int login(User user) {
		// int state = 0 ; //初始化状态变量
		Session session = util.getSession();
		try {
			Query queryName = session
					.createQuery("from User u where u.name = ?");
			queryName.setString(0, user.getName());
			List listName = queryName.list();
			if (null == listName ||listName.isEmpty()) {
				return -1; // 用户名不存在
			}
			Query queryNamePswd = session
					.createQuery("from User u where u.name = ? and u.password = ?");
			queryNamePswd.setString(0, user.getName());
			queryNamePswd.setString(1, user.getPassword());
			List listNamePswd = queryNamePswd.list();
			if (null == listNamePswd ||listNamePswd.isEmpty()) {
				return -2; // 密码不正确
			}
			Iterator it = listNamePswd.iterator();
			User userquery = (User) it.next();
			return userquery.getId(); // 验证成功,取ID值
		} catch (Exception e) {
			System.out.println("UserDaoImpl.isExist()方法发生异常:");
			e.printStackTrace();
			return 0; // 异常时返回0
		} finally {
			util.closeSession(session);
		}
	}

     User对象装进model层后,会进数据库去查看数据库中是否有此用户名和帐号,如果有返回用户id,如果没有返回其他值。而对象与数据库之间的映射又是通过一些映射文件来完成的,如User.hbm.xml。

<hibernate-mapping package="com.dianzi.model">
	<class name="User" table="T_USER_TEST">
		<id name="id" column="id" type="java.lang.Integer">
		         <generator class="native"></generator>
               </id>
		<property name="name" column="name" type="java.lang.String"
			length="100">
		</property>
		<property name="password" column="password"
			type="java.lang.String" length="100">
		</property>
		<property name="roleId" column="roleId"
			type="java.lang.Integer">
		</property>
	</class>
</hibernate-mapping>

     经过mapping后就可以那对象的属性和数据库的字段进行匹配,根据匹配情况会返回不同的值,返回的值被Controller层接受后做一些处理,比如Controller层会根据登陆返回的值,login函数会返回不同的值。

     Controller返回不同的值后,映射文件会根据返回的值的不同决定View层应该show出的界面。

所以总的过程应该时View-Mapping-Contoller—Mapping-Mapping-Model-Controller-Mapping-View顺序。

最后将我做的Demo上传如附件。

分享到:
评论

相关推荐

    struts框架原理图

    根据提供的文件信息,“Struts框架原理图”主要阐述了Struts框架的工作原理、流程以及页面间的跳转机制。为了更好地理解和应用Struts框架,本文将深入解析这些关键知识点。 ### Struts框架概述 Struts是一个开源的...

    基于struts框架的学生管理系统

    总结来说,"基于Struts框架的学生管理系统"是一个典型的Java Web应用实例,它涵盖了Struts框架的使用、JSP页面的编写以及数据库的交互。通过对这个项目的分析和实践,开发者不仅可以掌握Struts的基本用法,还能深入...

    学生管理的Struts框架开发实例

    总结来说,这个"学生管理的Struts框架开发实例"是一个很好的起点,它帮助初学者理解Struts如何组织应用程序,如何通过Action处理业务逻辑,如何使用ActionForm传递数据,以及如何通过ActionMapping和...

    Spring和Struts框架学习总结

    ### Spring和Struts框架学习总结 #### 一、Spring框架简介与核心概念 Spring框架是一个开源的Java平台,主要用于简化企业级应用的开发工作。它提供了全面的基础架构支持,包括依赖注入(DI)、面向切面编程(AOP)...

    一个运用了struts框架的学生请假系统

    Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它主要用来简化在Java EE平台上构建动态网站的应用开发过程。在这个名为“学生请假系统”的项目中,开发人员利用了Struts框架的...

    struts框架图片上传和显示

    总结起来,Struts框架通过`struts2-fileupload`库支持图片上传,处理上传的文件并将其保存在服务器上。在显示图片时,可以通过从数据库获取图片路径并在前端页面上引用。整个过程涉及到前端表单、后端Action处理、...

    基于Struts框架的网上书店毕业论文

    这篇论文不仅涵盖了Struts框架的使用,还可能探讨了实际项目开发中的问题解决和经验总结,对于理解和实践Struts框架有很好的指导意义。通过阅读和分析论文,读者可以深入了解Struts在实际项目中的应用,并学习到Web...

    struts框架及校验框架详解

    总结,Struts框架提供了规范化的开发流程,简化了MVC应用的构建,而其内置的校验框架则增强了数据安全性。理解并掌握Struts框架的原理和实践,对于提升Java Web开发能力至关重要。通过深入学习"struts框架及校验框架...

    struts框架中数据源的配置

    ### Struts框架中数据源的配置详解 #### 一、引言 在现代软件开发过程中,特别是企业级应用开发中,Struts框架被广泛应用于构建MIS系统等复杂的应用程序。Struts框架作为一种成熟的MVC架构实现,为开发者提供了...

    struts,struts,struts框架

    总结起来,Struts框架是Java Web开发中实现MVC模式的重要工具,它通过提供控制器、模型和视图的组件,以及一套完整的生命周期管理机制,帮助开发者构建结构清晰、易于维护的Web应用。Struts不仅包含控制器组件,还...

    Struts框架基础包

    总结起来,"Struts框架基础包"包含了开发基于Struts的应用所需的所有基础组件,从MVC架构的支持到各种标签库,再到国际化、异常处理和插件扩展,全面覆盖了Web应用开发的各个环节。开发者需要理解并熟练掌握这些组件...

    Struts框架.jar包

    总结来说,Struts框架.jar包是Java Web开发的重要工具,它提供了一套规范化的开发流程,有助于提高开发效率,减少代码耦合,同时也具备良好的扩展性和灵活性。对于Java Web开发者而言,理解和掌握Struts框架的原理和...

    struts框架个人留言本系统

    总结起来,"Struts框架个人留言本系统"是一个实用的教学实例,它展示了如何使用Struts、JSP和JDBC构建一个基础的Web应用,对于理解和掌握Struts框架及其在实际项目中的应用具有很大的帮助。通过分析和实践这个系统,...

    Struts2框架学习总结【自用】【原创】【详细】

    个人struts2框架学习后的梳理和总结,内容丰富,从配置文件到action类、result、ognl、类型转换器、国际化、拦截器、表单验证等等内容,还推荐了很多博客链接,有了它自学Struts2框架毫无压力!

    struts2总结项目总结

    Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用的解决方案。在本项目总结中,我们将深入探讨Struts2的核心特性、工作原理...

    自己写的类Struts框架(配Leave Message 实例)

    Struts框架是一个经典的Java Web开发框架,由Apache软件基金会维护,它主要负责处理MVC(Model-View-Controller)架构中的Controller部分。Struts框架通过提供一系列的控制器组件和动作类,使得开发者能够更容易地...

    struts框架-2.3.16.3

    总结,Struts框架是Java Web开发中不可或缺的一部分,尤其是对于遵循MVC模式的应用。通过了解和掌握Struts的特性、MVC模式以及SSH集成,开发者可以更高效地构建高质量的Web应用程序。Struts 2.3.16.3版本则提供了...

    以Struts框架为基础的Java Web应用开发分析.pdf

    总结来说,Struts框架为Java Web应用开发提供了一套完整的解决方案。它通过遵循MVC设计模式,有效地分离了业务逻辑和展示层,使得开发更为高效。同时,Struts框架丰富的功能组件和标签库也大大提升了开发速度。尽管...

    Struts 2及AJAX框架的详细介绍

    Struts 2是一个强大的、基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在原有的Struts 1的基础上进行了大量的改进和增强,提供了更灵活、高效的开发方式。AJAX(Asynchronous JavaScript and ...

    struts框架详细介绍.ppt

    Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它主要解决了传统Web应用中业务逻辑、数据和表现层松散耦合的问题,提高了代码的可维护性和可扩展性。本篇文章将深入探讨Struts...

Global site tag (gtag.js) - Google Analytics