struts 初体验

看电视机的烦恼

一般而言电视机节目已经很少看了(除了CC电视9记录频道),看电视紧要看互联网内容,显示的是“只看自己想看的”原则。无线电视机提供了“互动电视”效用,有一点象互联网内容,可惜其中的免费电影大多数是预告类,或者是很古老的,没有太大的志趣。其它就是用遥控器操作相比较勤奋,用户界面设计、使用流程令人憋屈,例如免费的电影也要出付费界面确认,真是多此一举。最近播发无线电视机得到运营资格,希望他们在这地点有所立异。

礼拜四闲来无事,准备折腾折腾用哪些措施让大电视机看视频更便于一些,于是有了下边的记录。

1. 什么是Struts2
struts2是以WebWork的筹划思想为主导,吸收了Struts1的部分有点,建立了配合WebWork和Struts1的MVC框架。

天猫魔盒出场

往昔到庭1111运动中奖一台Taobao魔盒,当时有兴奋劲的时候看的多一些,后来就闲置了。这会儿又想起来了,拿出来折腾一下。
起初后似乎发觉有新本子要翻新,这就更新吧。等了长时间没结果,忍不住重启了。本次直接进去初期的界面。

1.1 WebWork: 强调体系里面的松耦合,使用拦截器来实现控制。
不借助于于web容器,
从而解决了框架对ServletAPI的一体耦合,使得测试更加惠及。同时,在显示层协助更多的视图技术,开发更灵活。

阿里电视援手助攻

刚才等待的时候,想到现在有无数手机App能与盒子连接,天猫也应该有呢?搜索拿到“阿里电视帮手”,即使名字不完全一致,估量效率差不多,一个字:装!
果不其然前边就连续上了,提供了手机遥控器效用,操控就方便多了。
手机内部一贯接纳一个影视,让投影到电视机上播报,试验提示:电视版本低,无法连接。没办法,升级电视操作系统版本,于是又是深切的等待。
新生终于得以了:把手机电影投影到电视。甚至,不止是以此App,其他App如虎扑云课堂、优酷等的视频都可以投影到电视,等于Tmall魔盒提供了同频器效率,那算是一个出乎意料的拿走。

2. struts的得失
【优点】
2.1. 落实MVC情势,结构清晰,使开发者只关心工作逻辑的实现.
2.2. 有加上的tag可以用
,Struts的标记库(Taglib),如能灵活运用,则能大大提升开发功效。其余,就现阶段境内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的号子,或许Struts是一个很好的起源。
2.3.
页面导航.页面导航将是从此的一个前进势头,事实上,这样做,使系统的系统更加清楚。通过一个配备文件,即可把握总连串统各部分之间的联系,这对于前期的爱戴有着低度的好处。尤其是当另一批开发者接手那多少个类型时,这种优势呈现得更为肯定。
2.4. 提供Exception处理机制 .
2.5. 数量库链接池管理
2.6. 支持I18N
【缺点】
2.1
转到体现层时,需要配备forward,每三次转到显示层,相信大部分都是直接转到jsp,而关联到转会,需要配置forward,倘使有十个呈现层的jsp,需要安排十次struts,而且还不包括有时候目录、文件变更,需要再行修改forward,注意,每回修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还非得再度起动服务器,如若工作转移复杂频繁的系统,这样的操作简易不可想像。现在就是如此,几十众三个人同时在线使用大家的系统,我们可以想像一下,烦恼有多大。
2.2 Struts
的Action必需是thread-safe情势,它只有允许一个实例去处理所有的请求。所以action用到的富有的资源都必不可少统一联合,这么些就挑起了线程安全的问题。
2.3 测试不方便.
Struts的各种Action都同Web层耦合在协同,这样它的测试看重于Web容器,单元测试也很难落实。不过有一个Junit的恢弘工具Struts
TestCase可以实现它的单元测试。
2.4 类型的转换.
Struts的FormBean把拥有的数量都当做String类型,它可以利用工具Commons-Beanutils举行项目转化。但它的转折都是在Class级别,而且转化的序列是不行配置的。类型转化时的错误消息重回给用户也是特别忙绿的。
2.5 对Servlet的依赖过强. Struts处理Action时必需要依赖ServletRequest
和ServletResponse,所有它摆脱不了Servlet容器。
2.6
前端表明式语言方面.Struts集成了JSTL,所以它至关重要运用JSTL的表达式语言来获取数据。然而JSTL的表明式语言在Collection和索引属性方面处理显得很弱。

移动硬盘上

Tmall魔盒前边有一个USB接口,把移动硬盘接入,启动暴风影音,选用播放本地视频,果然不负众望!
当然也有遗憾,固然让暴风扫描移动硬盘中的录像,剩下的就是苦苦的等候,且不可以收场。直到绝望关闭魔盒重启,改为手动选取路径,才就此躲过一劫。

3. Struts2 的获取
http://struts.apache.org

挖宝App

除此之外看电影、装App,还有什么样好玩的啊?

在利用手机遥控器的时候,注意到除了最常见的“按键遥控”格局,还提供“体感遥控”、“游戏手柄”和“方向盘”等格局,逐个试试看。

“体感遥控”自然是和体感游戏相关,安装了一个羽毛球游戏,起始试验。即便刚开端对操作按钮的法力不太熟识,经过一番情势为主认同“B”是收回,“A”是肯定,如此就可以玩了。对阵先导,用手机作为羽毛球拍,打起来也算是那么五回事,跳起来很快拍下,模拟扣球动作,哈哈,赢了!好不容易一局截至,累的可怜,看来玩那些游乐也是在家练习的一种好法子了。需要小心的是,正如手机指示,用手机玩体感游戏,千万注意不要把手机不小心甩出去。

阿里电视入手还提供了一些健身、瑜伽、太极等使用,对于推动在家磨炼相信大有裨益吧。

懒得发现一个手机唱歌的App“歌吗”,当时以为是“唱啊”,赶紧在小叔子大上设置、打开唱呢,却发现不能和屏幕上的选取举行二维码扫描连接。仔细一看,然来这些动用是“歌吗”,不是“唱啊”。重新安装,连接,试验成功。尝试在手机上唱歌,声音和画面从电视机里出来,似乎家庭卡拉OK就这样搭建起来了。但是这个不满的是,电视播放出来的响动延迟相比较厉害,且回音太大,总体效益难以承受。

总体来看,通过互联网应用,可以拉动电视利用率显著提高。当然要达成极致效果,还需要魔盒硬件、网速、周边设备硬件等进一步提升,与软件分外达到天衣无缝的地步,才能更好地吸引众人回到电视机身旁。

4. Struts2 的应用

  • 4.1 确认环境

1) 在档次中引入Struts2 jar包
struts2-core xwork-core ognl fremarker javassist commons-fileupload
commons-io Commons-lang
2) 修改工程的web.xml文件,配置过滤器

  • 4.2 代码编写

1)
编写开发处理请求的Action类,并落实具体的拍卖请求的办法,该情势需要回到一个字符串类型的结果【action类,
extends ActionSupport】
2) 编写struts.xml文件,对Action举办配置【位于src的根目录下】
3) 编写与Action相关的JSP页面

5. Struts2访问servletAPI对象

  • 5.1
    使用ActionContext类获取ServletAPI对象对应的MAP对

【使用Map对象替代ServletAPI中的HttpServletRequest, HttpSession和
ServletContext】

1) 获得request参数 【get()】
ActionContext ac = ActionContext.getContext();
Map request = (Map)ac.get(“request”);

2) 获取对象的HttpSession对象的Map对象【getSession()】
Map session = ActionContext.getContext().getSession();

3) 获取相应的ServletContext对象的Map对象 【getApplication()】
Map app = ActionContext.getContext().getApplication();

示范: Action页面保存用户名: session.put(“name”,”values”);
         JSP页面获取用户名: ${sessionScope.name}

  • 5.2 struts2 向Action
    注入ServletAPI对象对应的Map对象

 

  • 5.3 与Servlet
    API耦合的拜会格局

 

6. Struts 2 标签

标签分为两类: UI标签(UI Tag) 和通用标签 (Generic Tag)
<%@taglib uri=”/struts-tags” prefix=”s” %>

6.1 UI标签: 表单标签、非表单标签、Ajax标签
<s:form></s:form> <s:textfield></s:textfield>
……

6.2 通用标签: 条件标签 <s:if> <s:elseif> <s:else>
迭代标签: <s:iterator>

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注