当前位置:首页 > 数据库 > 正文

struts2请求参数 struts2的执行过程

struts2请求参数 struts2的执行过程

很多朋友对于struts2请求参数和struts2的执行过程不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!Java新手如何学习Spring、S...

很多朋友对于struts2请求参数和struts2的执行过程不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

Java新手如何学习Spring、Struts、Hibernate三大框架

学习Spring、Struts和Hibernate是很多初学者都会经历的阶段,要掌握这三个框架首先要清楚这三个框架都分别解决了哪些问题,同时要知道这三大常见框架的使用场景和框架的内部实现细节。

下面我将分别跟头条的朋友探讨一下这三个框架的细节,从它们分别能解决什么问题入手,然后进一步分析它们的组成结构。

Java基础知识准备

要开始学习Spring、Struts和Hibernate这三个框架,需要做充足的Java基础知识学习,知道这些知识才能知道为什么需要使用这三个框架。下面列出学习三大框架之前的基础知识:

Java面向对象开发基础。这部分内容包括类、对象、方法、属性四大概念,以及封装、继承、多态三大特征的使用。要清晰面向对象的开发过程:类的定义、对象的创建、方法的调用。

Java操作数据库。这部分内容包括Java如何与数据库进行沟通,如何通过java完成数据库的增删改查等基本操作。这部分内容还包括如何使用预处理模式提高效率,如何使用CallableStatement完成存储过程调用,以及如何使用数据库连接池来优化数据库操作。当然还要清楚使用DAO模式来规范化代码结构,而这也为使用Hibernate打下了一定的基础。

Javaweb开发基础。这部分内容包括Servlet、JavaBean、JSP的开发、调试、部署,清楚web开发的范围定义以及web容器的配置管理。要清楚webMVC结构,能使用Model2结构进行web程序开发,而这为使用Struts和Spring打下了基础。

(如果这部分知识你还不太了解可以关注我,我在头条上不断更新关于java开发的系列文章)为什么要使用Hibernate

要清楚为什么使用Hibernate,首先要明白Java操作数据库存在哪些问题,这些问题应该怎么解决?为了描述这些问题,首先我们看一下如何使用JDBC完成数据库操作,我们看一个图示:

这个图示描述了Java通过JDBC(一个专门操作数据库的JavaAPI)来操作各种数据库的结构图,图中Java代码直接完成对数据库的操作。接下来我们再看一下操作的原理图,也就是java操作数据库的细节描述图:

通过这张原理图,我们可以清楚的看到java如何使用JDBC完成与数据库的具体交互过程,使用JDBC操作数据是Java的官方标准,在经过不断的更新后,目前的JDBC性能已经得到了显著的提高。

在具体开发数据库操作的时候,我们通常会采用DAO模式,使用DAO的目的是模块化数据库操作,方便团队之间的协同化开发,为了描述DAO,我们看一张图示:

通过图示我们能发现,DAO位于业务层和数据库的中间,可以说它完成了一个映射的任务。这个映射就是从面向对象的Java代码向面向关系的数据提供了一个映射,再简单点说就是:DAO可以让Java程序员以面向对象的方式操作面向关系的数据库。

Hibernate的作用与DAO的作用是一样的,就是完成这个映射层的创建,可以说Hibernate是DAO的一个通用的实现。通过Hibernate程序员可以很方便的为程序创建与不同数据库产品之间的映射,从而让程序员从开发DAO实现的细节工作中解放出来,这就是为什么要使用Hibernate的原因。

学习Hibernate并不复杂,如果你已经有过编写DAO实验的经验,那么使用Hibernate能让你十分愉快,因为你再也不用编写麻烦的“封包”和“拆包”代码了。

为什么要使用Struts和Spring

为什么把Struts和Spring放在一起呢,因为它俩关系密切(其实Spring完全可以独立一站式解决问题),放在一起解释更加清晰。

在学习javaweb开发的时候,会学习到如何使用基于MVC结构的web开发,具体点就是使用Servlet+Javabean+JSP来完成Model2结构的开发,结构图如下所示:

图中完成了使用java代码的方式来编写MVC结构的程序,MVC的开发模式是大家公认的有效且经典的开发结构,目前基本上web开发的标准配置。

但是在大家自己编写MVC结构的时候,会比较麻烦(如果这部分内容不清楚,关注我,我会在后续文章中详细阐述如何使用java代码完成mvc开发),因为所有的导航代码都需要自己编写,将来调整的时候也非常麻烦。Struts就很好的解决了这个问题,程序员可以通过配置来完成程序的调整,节省了大量的编码时间,也让团队合作开发变得更容易了。简单的说Struts就是完成了程序MVC结构的实现。

那么在上图中,我们还会发现一个问题,在web容器中还运行着Model组件,而通常Model组件就是JavaBean组件。也就是说web容器既提供了web组件的池功能,又提供了业务组件的池功能,这势必会影响业务组件的运行性能。为了解决这个问题,出现了两个阵营:官方标准采用了大名鼎鼎的EJB,解决方案如图所示:

图中清晰的呈现了EJBserver,已经把业务模块从web容器中剥离出来了。而另一个解决方案就是Spring,它也是池化业务模块,只不过Spring更加轻量级,所以得到了广大程序员的喜爱。也就是从此,java开发背上了“较重”的标签。但是EJB目前仍然有它自己的特点,虽然重,但是功能也十分强大。

所以简单的说就是Struts完成了MVC框架的实现,Spring提供了业务模块的轻量级容器。

学习步骤

其实写到这,大家已经清楚了学习的步骤,因为文章的描述过程就是一个顺序的学习步骤。

在简单总结一下:

学习基础开发

学习数据库开发

学习web开发

学习Hibernate

学习Struts

学习Spring

整合

建议多做实验,也要经常到三大框架的官网多看一看,如果应用基础好的读者,可以到这几个框架的官方社区多看看,社区里有很多能力很强的开发者,跟他们交流一定能让你受益匪浅。

如果大家觉得这篇文章帮助你了解这三大框架,那么请关注我,跟我一起学习java知识,学习互联网知识。

谢谢!

strus1和strus2的区别

struts1相对struts2小巧,与servlet和jsp耦合性较高,struts2是以xwork(WebWork)为核心,不是struts1的升级版,可以看成是xwork的升级版

什么是struts2的国际化信息标签

struts2的国际化,首先在struts2的国际化,我们应必备的前提,首先如果我们要使用struts2的国际化,我们首先要在struts2中配置一个标签如:<constantname="struts.custom.i18n.resources"value="csdn"></constant>,这样我们就能使用struts2中的国际化了,但是这个配置必须的是你在你的struts2配置环境能用的基础上。

struts2配置中,param中为空什么意思。传递的是整个action对象吗

struts2使用chain的方式会保留请求参数当使用redirectAction时,会发生重定向,参数会丢失,可以使用以下两种方式传递参数,两种方法下目标Action都必须有对应属性的getter,setter方法param方式:直接传递:从上面看出,在struts.xml里调用OGNL表达式并不是使用%{}而是使用${},这和EL表达式在JSP页面中的用法一样。

struts2 Action属性值

在struts2中Action的属性用来封装请求参数,可以是普通属性也可以是对象模型,不管何种方式,问题是:属性的值是怎么赋值的?考察方式可以在Action中添加一个简单属性,生成gettersetter方法,在setter方法中添加断点可以跟踪。Action的代码如下:

ublicclassUserAction{

privateStringname;

publicUserAction(){

System.out.println("==创建UserAction对象=");

}

publicStringexecute(){

System.out.println("执行execute方法...");

System.out.println("name========="+name);

return"success";

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;//在该行添加断点调试运行Tomcat

}

}

spring与struts2的区别。我觉得他们两都是mvc框架阿,可是面试官说不对

你确实错了,spring不是mvc框架。

spring是一个ioc/aop框架,它有一个mvc框架叫springmvc。springmvc是基于spring的mvc框架。

struts才是mvc框架,但一般搭配spring,利用spring的ioc功能来加强。

文章分享结束,struts2请求参数和struts2的执行过程的答案你都知道了吗?欢迎再次光临本站哦!

最新文章