Struts.doc

上传人:sk****8 文档编号:3520651 上传时间:2019-06-01 格式:DOC 页数:17 大小:62.50KB
下载 相关 举报
Struts.doc_第1页
第1页 / 共17页
Struts.doc_第2页
第2页 / 共17页
Struts.doc_第3页
第3页 / 共17页
Struts.doc_第4页
第4页 / 共17页
Struts.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、StrutsStruts 是一个简化 MVC 开发的非常优秀的 Web 应用框架,主要采用 JSP、Servlet 等技术实现。应用框架为开发者提供可重用的基础架构,为业务逻辑开发提供支持,减少底层代码工作量,从而减少开发 Web 应用系统的时间,提高开发效率。Struts 应用框架主要包括 4 个部分:1.模型(Model)。模型可以分为两个部分:系统的内部状态和业务逻辑实现。在 Struts 中 Model 实质上是一个 Action 类,也是一个 JavaBean.2.视图(View)。View 由与控制器 Servlet 配合工作的 JSP 定制标签库构成,可简化应用系统的界面开发。3

2、.控制器(Controller)。本质上是一个 Servlet,将客户端请求转发到相应的 Action 类,完成映射过程。4.XML 文件解析工具包。Struts 用 XML 来描述如何自动产生一些 JavaBean 的属性,西外 Struts 还可以利用 XML 实现多国语言支持等功能。Struts 包含有很多组件,核心组件有 4 个,分别是 ActionServlet 组件、ActionMapping 组件、ActionForm 组件以及 Action 组件。1.ActionServlet 组件:控制器ActionServlet 组件在 Struts 框架中扮演的角色是控制器,其继承自 j

3、avax.servlet.HttpServlet类。控制器 ActionServlet 组件负责将 HTTP 的客户请求信息封装后,根据配置文件的定义,再转发到适当的处理器。根据 Servlet 的标准,所有的 Servlet 必须再 Web 配置文件(Web.xml)中声明,因而ActionServlet 也必须再 Web Application 配置文件(Web.xml)中定义。2.ActionMapping 组件:存储映射信息将特定请求映射到特定 Action 的相关信息存储在 ActionMapping 组件中,ActionServlet 将ActionMapping 传送到 Acti

4、on 类的 perform()函数,Action 将使用 ActionMapping 的 findForward()函数,此函数返回一个指定名称的 ActionForward,这样 Action 就完成了本地转发。若没有找到具体的ActionForward,就返回一个 NULL 值。3.AcionForm 组件:保存请求的参数ActionServlet 使用 ActionForm 来保存请求的参数。ActionForm 实质上是一个 JavaBean,这些 Bean的属性名称与 HTTP 请求参数中的名称相对应。控制器将请求参数传递到 ActionForm 的实例,然后将该实例传送到 Acti

5、on 类。ActionForm 是一个抽象类,必须通过继承来实现自己的具体类。ActionForm 首先要进行初始化,然后调用 validate 函数,检查请求参数的正确性和有效性。如果通 validate 函数的验证,ActionForm 将被作为参数传给具体 Action 类的 execute 函数以供使用。4.Action 组件:将请求与业务逻辑分开Action 组件的功能类似于客户请求和业务逻辑处理之间的一个适配器,从而将请求与业务逻辑分开。分离以后可以使客户请求和 Action 类之间实现多个点对点的映射,此外 Action 组件还提供其他辅助功能,例如:认证、日志和数据验证等,具体

6、的功能一般都在 execute()函数中完成。ActionServlet 类作为中心 Servelt 将负责处理所有到来的用户请求,也就是说所有用户的请求首先到达的就是 ActionServlet 类。当 ActionServlet 接收到一个用户请求时,将执行如下流程:1.检查和用户请求匹配的 ActionMapping 实例,如果不存在,就返回用户请求路径无效的错误信息。2.如果为 ActionMapping 配置了 form,则获取相应的范围内的 ActionForm 实例。如果 ActionForm实例不存在,就创建一个 ActionForm 对象,把客户提交的表单数据保存到 Acti

7、onForm 对象中。3.根据 ActionMapping 配置信息决定时候需要验证表单。如果需要验证,就调用 ActionFrom 的validate()方法。4.如果 ActionForm 的 validate()方法返回 null,或者返回一个不包含任何 ActionMessage 的ActionErrors 对象,就表明表单验证成功,继续执行下一步。否则返回 input 属性指定的页面,并向用户显示 ActionErrors 集合中的错误信息。5.ActionServlet 根据 ActionMapping 实例包含的映射信息决定将请求转发给哪个 Action,如果相应的 Action

8、 实例不存在,则先创建这个实例,然后调用 Action 的 execute()方法。6.Action 的 execute()方法返回一个 ActionForward 对象,ActionServlet 将请求转发到这个ActionForward 对象指定的组件,通常是一个 JSP 视图或是其他的 Action.7.如果 ActionForward 对象指向一个 JSP 视图组件,则将 JSP 组件生成的动态网页返回个用户;如果ActionForward 对象指定的仍然是一个 Action,则又从第 1 步重新开始执行。JavaScript 最常用的 55 个经典技巧1. oncontextmen

9、u=“window.event.returnValue=false“ 将彻底屏蔽鼠标右键no 可用于 Table2. 取消选取、防止复制3. onpaste=“return false“ 不准粘贴4. oncopy=“return false;“ oncut=“return false;“ 防止复制5. IE 地址栏前换成自己的图标6. 可以在收藏夹中显示出你的图标7. 关闭输入法8. 永远都会带着框架9. 防止被人 frame10. 网页将不能被另存为“;11. 12.删除时确认删除13. 取得控件的绝对位置/Javascriptfunction getIE(e)var t=e.offset

10、Top;var l=e.offsetLeft;while(e=e.offsetParent)t+=e.offsetTop;l+=e.offsetLeft;alert(“top=“+t+“/nleft=“+l);/VBScript“BODY“set a = a.offsetParentt=t+a.offsetTopl=l+a.offsetLeftwendmsgbox “top=“var r =e.createTextRange();r.moveStart(“character“,e.value.length);r.collapse(true);r.select();15. 判断上一页的来源jav

11、ascript :document.referrer16. 最小化、最大化、关闭窗口本例适用于 IE17.屏蔽功能键 Shift,Alt,Ctrlfunction look() if(event.shiftKey) alert(“禁止按 Shift 键!“); /可以换成 ALT CTRLdocument.onkeydown=look; 18. 网页不会被缓存或者19.怎样让表单没有凹凸感?或20. background-repeat:no-repeat; background-position:center;background-attachment: fixed 28. 检查一段字符串是否

12、全由数字组成29. 获得一个窗口的大小document.body.clientWidth; document.body.clientHeight30. 怎么判断是否是字符if (/x00-/xff/g.test(s) alert(“含有汉字“);else alert(“全是字符“);31.TEXTAREA 自适应文字行数的多少32. 日期减去天数等于第二个日期function cc(dd,dadd)/可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(

13、a.getFullYear() + “年“ + (a.getMonth() + 1) + “月“ + a.getDate() + “日“)cc(“12/23/2002“,2)33. 选择了哪一个 Radiofunction checkme()for each ob in radio1if ob.checked then window.alert ob.valuenextend functionStyleBarcode34.脚本永不出错35.ENTER 键可以让光标移到下一个输入框36. 检测某个网站的链接速度:把如下代码加入区域中:tim=1setInterval(“tim+“,100)b=1

14、var autourl=new Array()autourl1=1000)this.resized=true;this.style.width=1000;“ align=absMiddle border=“autourl2=““autourl3=1000)this.resized=true;this.style.width=1000;“ align=absMiddle border=“autourl4=““autourl5=1000)this.resized=true;this.style.width=1000;“ align=absMiddle border=“function butt()

15、*(“)for(var i=1;i = =“)*(“)butt()function auto(url)document.forms0“url“+b.value=urlif(tim200)document.forms0“txt“+b.value=“/链接超时“elsedocument.forms0“txt“+b.value=“/blog/时间“+tim/10+“秒“b+function run()for(var i=1;i“)run()37. 各种样式的光标auto :标准光标default :标准箭头hand :手形光标wait :等待光标text :I 形光标vertical-text :水

16、平 I 形光标no-drop :不可拖动光标not-allowed :无效光标help :?帮助光标all-scroll :三角方向标move :移动标crosshair :十字标e-resizen-resizenw-resizew-resizes-resizese-resizesw-resize38.页面进入和退出的特效进入页面推出页面 这个是页面被载入和调出时的一些特效。duration 表示特效的持续时间,以秒为单位。transition 表示使用哪种特效,取值为 1-23:0 矩形缩小 1 矩形扩大 2 圆形缩小3 圆形扩大 4 下到上刷新 5 上到下刷新6 左到右刷新 7 右到左刷新

17、 8 竖百叶窗9 横百叶窗 10 错位横百叶窗 11 错位竖百叶窗12 点扩散 13 左右到中间刷新 14 中间到左右刷新15 中间到上下16 上下到中间 17 右下到左上18 右上到左下 19 左上到右下 20 左下到右上21 横条 22 竖条 23 以上 22 种随机选择一种39.在规定时间内跳转40.网页是否被检索其中属性值有以下一些:属性值为“all“: 文件将被检索,且页上链接可被查询;属性值为“none“: 文件不被检索,而且不查询页上的链接;属性值为“index“: 文件将被检索;属性值为“follow“: 查询页上的链接;属性值为“noindex“: 文件不检索,但可被查询链接

18、;属性值为“nofollow“: 文件不被检索,但可查询页上的链接。41、email 地址的分割把如下代码加入区域中42、流动边框效果的表格把如下代码加入区域中l=Array(6,7,8,9,a,b,b,c,d,e,f)Nx=5;Ny=35t=“for(x=Nx;x “t+=“ “for(x=2;x “t+=“for(x=Ny;x0;x-)t+=“ “*(t+“)var N=Nx*2+Ny*2function f1(y)for(i=0;i10)c=20-cdocument.all“a_mo“+(i).bgColor=“#0000“+lc+lc+“y+setTimeout(f1(+y+),1)f

19、1(1)43、JavaScript 主页弹出窗口技巧窗口中间弹出window.open(“http:/“,“,“width=400,height=240,top=“+(screen.availHeight-240)/2+“,left=“+(screen.availWidth-400)/2);=function WinOpen() msg=open(“,“DisplayWindow“,“toolbar=no,directories=no,menubar=no“);msg.*(“哈 罗 !“);msg.*(“酷 毙 了!这 是JavaScript所 开 的 视 窗!“);=一、在下面的代码中,你只

20、要单击打开一个窗口,即可链接到赛迪网。而当你想关闭时,只要单击一下即可关闭刚才打开的窗口。代码如下: http:/,NewWindow); function closeclk() another.close(); / 二、上面的代码也太静了,为何不来点动感呢?如果能给页面来个降落效果那该多好啊! 代码如下: function drop(n) if(self.moveBy) self.moveBy (0,-900); for(i = n; i 0; i-) self.moveBy(0 ,3); for(j = 8; j 0; j-) self.moveBy(0 ,j); self.moveBy(j ,0); self.moveBy(0 ,-j); self.moveBy(-j,0);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。