Struts2
清如许.
种一棵树最好的时间是十年前,或者现在!
展开
-
Struts2动态方法调用,和struts.xml的通配符方式调用
DMI(Dynamic Method Invoke)动态方法调用在之前写Servlet的时候是一个方法就要写一个Servlet类,这样很大程度造成了开发效率的降低,重复写了太多代码,而struts2的动态方法调用就很好 的解决了这个问题!动态方法调用其实就是在一个Action中写多个方法,定义多个方法完成多个功能,将同1个模块中的功能定义在一个类中,提高了开发效率,同时提高了后期可维护性。...原创 2019-06-26 12:30:03 · 339 阅读 · 1 评论 -
struts2实现的文件上传下载案例(一)、FileUpLoad
实现文件的上传,本质上就是将用户电脑上的文件复制到服务器上所在的电脑上开发思路:1,建立和上传源文件有关的输入流;文件上传过程中的输入流,要通过request对象获取2,建立和目标服务器文件关联的输出流输出文件,就是想Action所在的电脑上写入一个文件3,一边读一遍写。4,关闭输入输出流需要注意的是,request.getInputStream()得到的输入流本身包含上传的文...原创 2019-07-04 21:41:36 · 396 阅读 · 0 评论 -
struts2中的拦截器Interceptor,拦截器栈,Token口令拦截
1、拦截器Struts2的拦截器是struts2框架中最为重要的核心组件。Struts2的很多核心功能都是通过拦截器实现的。比如action类可以自动收集表单的数据。struts2中的拦截器类似于servlet中过滤器。当客户端请求struts的拦截器时,请求会先进入到struts的拦截器里面。拦截器先运行,拦截器可以对请求放行,放行后请求运行action方法。Action方法运行完后,会...原创 2019-06-29 14:38:05 · 652 阅读 · 0 评论 -
strus2中页面的s标签,替换jsp的el和jstl标签
1,strus2中页面的s标签相比于jsp中的jstl的c标签的优势与用法:如下图所示:2,s标签的使用方法:首先,在jsp中引入struts的标签库。<%@ taglib prefix=”s” uri=”/struts-tags”%>1.打印ognl表达式<s:property value=”ognl表达式” />s标签显示单个数据2.循环标签,遍历...原创 2019-06-29 13:08:23 · 681 阅读 · 0 评论 -
struts2为何使用值栈,如何获取值栈对象
一、什么是值栈1、之前在web阶段,在servlet里面操作,把数据放到作用域对象里,在页面中使用el表达式获取到对应的值,域对象在一定的范围内存值和取值。2、在struts2里面提供本身的一种存储机制,类似于域对象,是值栈,可以存值和取值在action里面把数据存放到值栈里面,在页面中获取到值栈数据3、servlet和action的区别前面讲action生命周期时已经提到:servl...原创 2019-06-29 12:52:24 · 712 阅读 · 0 评论 -
Ognl表达式的应用,语法,及如何获取数据root,ContextMap
1. OGNL表达式 (对象图导航语言)OGNL是Object-Graph Navigation Language的缩写,翻译过来就是 对象视图导航语言 ,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以实现:可以存取对象的任意属性,可以调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。EL(Expression L...原创 2019-06-29 12:11:07 · 974 阅读 · 0 评论 -
struts2中获取作用域的2种方式,RequestAware
Servlet中有三大作用域:request : 作用于一次请求,session:作用于一个浏览器中,在浏览器不关闭的情况下多次响应都有效servletContext(application):作用于一个web应用中,在整个程序中都有效,因其作用范围太大所以在开发中用的很少。那么在struts2中如何获取这三个作用域呢?有两种方式:1. 使用ServletActionContext获取...原创 2019-06-28 19:10:08 · 626 阅读 · 0 评论 -
struts2中Action的生命周期
说Action的生命周期前先来回顾一下Servlet的生命周期。Servlet的生命周期:第1访问时创建任意次访问时执行service方法Tomcat关闭时销毁一个Servlet只创建1次, Servlet对象是单例的。单例的问题就是线程不安全:那么如何解决线程不安全呢,有两种解决办法1,加锁(不推荐,影响性能)2,不定义属性(推荐,并且我们之前在开发Servlet的时候一...原创 2019-06-28 10:15:15 · 571 阅读 · 0 评论 -
struts2中Action的三种开发编写形式,ActionSupport,POJO
Action的三种编写方式:- 1、实现Action接口需要实现execute()方法。2、继承ActionSupport类从struts2源码中,我们可以看到 ActionSupport类也实现了Action接口,并且 Action接口中还定义了5个常量, 5个常量的值对应的是5个逻辑视图跳转页面 (跳转的页面还是需要自己来配置),还定义了一个方法, execute方法。这5...原创 2019-06-27 19:16:50 · 435 阅读 · 0 评论 -
struts2封装好的三种收参方式,零散、对象、集合。
收参,就是将浏览器表单页面输入的数据的值传到后台, 之前用request.getParameter()收参的时候整个过程是比较繁琐的,其缺点主要有:1.servlet的api侵入到了action类中。Action跟servlet耦合性高。2.程序员需要手动转换数据类型。3.程序员需要手动封装成实体对象。而struts2框架以其强大的功能和优雅的实现使我们的收参方式变得极为的简介轻巧。...原创 2019-06-27 16:37:41 · 448 阅读 · 0 评论 -
Struts2的工作原理解析
先通过一个图来看一下struts2的工作流程:1、工作流程简单来说,一个请求过程要执行的步骤是:1、客户端浏览器发出HTTP请求到服务器(tomcat)2、根据web.xml配置,该请求首先被FilterDispatcher接收,被核心过滤器拦截并在核心过滤器中对请求进行判断。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC注入方式,将值注入给Aci...原创 2019-06-27 09:31:31 · 442 阅读 · 0 评论 -
Struts2中的跳转、package标签、挎包重定向、全局跳转
1、struts.xml文件中使用package标签的好处:1、对Action标签进行分门别类的管理,将同1个功能模块的Action放在同一个package标签下。提高了项目后期的可维护性。2、重用功能 extends用于继承一个父包,默认继承父包的配置。A) namesapce属性【实战:必须添加namespace】作用:在访问action时,路径必须添加namesapce的值,那么...原创 2019-06-24 09:05:19 · 708 阅读 · 0 评论 -
框架技术,Struts2入门配置
1 什么是框架框架是一个项目的半成品。在创建项目的时候,先把框架搭建起来,这样项目就完成了一些公共的功能。我们基于框架进行编写项目,就不用再关注公共功能了,只需要去写我们项目跟其他项目不一样的业务就可以。 公共的功能指的是:比如到数据库里面获取数据,再比如,收集表单中的数据。程序开发过程中的半成品,解决项目开发过程中通用的问题,从而提高项目开发效率。项目 = 框架 + 业务逻辑代码;2 ...原创 2019-06-23 17:06:10 · 324 阅读 · 1 评论 -
struts2实现的文件上传下载案例(二)、FileUpLoad文件的下载
开发思路:1,要先数据库上查询到服务器上有的文件,遍历到list集合中在前端页面显示,给一个超链接提供下载,2,建立和文件关联的输入流3,建立和客户关联的输出流4,一边读,一遍写5,关闭输入输出流开发步骤:项目的整个目录结构还和文件上传的结构一致,1,前端页面代码如下:<h2>服务器文件、点击下载</h2> <hr> <s:...原创 2019-07-04 22:00:59 · 275 阅读 · 0 评论