首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> Shell教程
使用jsp完成文件可定制上载-JSP教程,Jsp/Servlet
作者:网友供稿 点击:28
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
 这几天的工作主要围绕着文件(主要是图片)上载,并可以在线和html编辑器集成,操作简便与目前引用网上图片相似。我是有点小看了这件事情,不过也不无道理:一来以前使用servlet完成过,其中的核心douploadbean也的确是可以工作;其次集成到编辑器则在使用php的本人的私人博客上做过,看不出有什么特别难的地方。但实际上在展开后就发现,简单实现上载是容易的,但要合理地安排上载的策略,就不得不小心翼翼。因为允许上载本身是非常需要危险的,这实际上是开了一个口子;允许客户对服务器进行事实上的操作,上载攻击从来就不是一件困难,更不是一件罕见的事情;可以想见一旦系统开通,这类攻击必然就会发生。

    另一方面,在允许用户上载本地文件同时就必须考虑后期的管理,因为,即使是在用户本地,最大的硬盘也会过不多久就会给说不清是什么东西的垃圾占满;何况现在是允许许多人同时使用的服务器,如果没有精确的策略,花不了多长时间,客户的上载文件就会把系统撑爆。就在上一个星期,一位朋友向我求助,说是他们的数据库达到30g,把硬盘吃光了,结果死了机;对此,本人只能是爱莫能助,因为,可以肯定里面绝大部分是垃圾,却搞不清什么是垃圾,什么是必须的。因为,他们缺乏一个策略。而且,就算用户不是恶意的,大部分情况下,在开通开载的时侯,很快硬盘也会撑满,如果这是系统盘,通常就意味着崩溃,可见,必须使用连接把上载限制到另一个专用的分区,以确保安全。通常铁quota在这里是派不上用场的,因为那需要把web帐号与操作系统帐号结合,既复杂又危险,更加没有这个必要。同时,上载的文件如果不是给每个用户分配目录,也应该是在每个用户的名称前增加一个前缀,以供识别;这样,万一需要清理,配合文件日期,可以使用find/grep/rm组合脚本进行备份或清除,至少是有可能的。
      还有其他因素,导致上载文件实际操作比简单接爱一个文件上载的程序量要大得多;其中主要包括权限控制,(考虑到可以用上载进行攻击,这条不得不小心点),文件管理,以及修改属性,包括大小,类型限制,可以方便修改存储的方式等等,事实上,就完成情况下,上载部分只花了五行程序,而管理则不小于50行。
      今天已经不必再自已写输入流了,就算自已没有积累,还是可以从网上找到开源的代码,象jakarta commons upload就是一个。这个东西没有什么例子,所找到的例子大部分是跑不动的,倒不是怪程序员自已,而是这个东西不但没有什么文档,还把方法和类也改了:例子说的upload实际上是diskupload,而当前的upload有什么区别,为什么可以省去设置内存耗量的等部分,我找不到任何的解释。虽然对自已的代码有所偏爱,但由于我的代码不能处理多个file上载,虽然,这种情况实际上也很少,我却一直弄不明白有什么办法可以识别不止一个上载请求,这意味着我对rfc1864仍是欠了解的,既然有更可靠的东东,就不要太偏心自已的东西了,结果把用了几年的douploadbean彻底地埋葬了。
       在选择是使用jsp还是servlet处理上载时,显然两者中servlet更规范一点,但在权限控制上颇为不便,因为,所以识别变量必须通过 request获取,这也意味着存在客户端伪造变量直接提交上载的可能性,确保正确识别意味着大量的代码。我最终决定采用自已发明的使用jsp标签取代 servlet的办法,(参看《可以使用多个jsp标签达到类似servlet效果》一文)。结果表明,这的确是兼有 jsp/servlet/javabean优点的好办法,特别是修改非常容易,我改个主意要以用户名称开目录,只是改了标签一个定义属性就搞妥了,这才真是易用性的体现。

最终的使用方法很简单:

<command:saveupload byform="false" noredirect="true" filename="theimg" roles="section" dir="${filepath}" max="20000000"/>

这样,saveupload标签就会自动检测权限,并按科室中定义的管理组允许其中的成员上载,上载到科室下的upload目录中的用户名称建立的专用目录中,而存盘的文件名使用theimg名称供客户端嵌进正在编辑的文本中。

这样,上载就真正成为一个可以自由方便地使用的组件了。



文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·jsp设置页面过期-JSP教程,Jsp/Servlet
·用SqlDataAdapter更新数据库的方法介绍-.NET教程,数据库应用
·用java关闭IE窗口-JSP教程,Java技巧及代码
·ADO.NET 2.0 Feature Matrix-ASP教程,ASP应用
·Jsp & Servlet 会话控制-JSP教程,Jsp/Servlet
·xmlhttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)-ASP教程,XML相关
·使用C#编写Ice应用程序-.NET教程,C#语言
·用PHP实现WEB动态网页静态-PHP教程,PHP应用
·DataGrid基于Access的快速分页法-.NET教程,数据库应用
·HTML文档中小meta的大作用-ASP教程,XML相关
最新文章
·photoshop打造数码照片“像素块”特效_photoshop教程
·css中如何正确的使用id和class_css教程
·保证让新手轻松月挣500以上_网赚技巧
·记住10个关键词让你作一名成功的站长_站长心得
·对新人站长得一些善意得提醒_站长心得
·在windows vista中安装telnet客户端_windows vista
·怎样提高你的google adsense收入_站长心得
·googleadsense新手指南及常见问题整理_google推广
·高网站访问量的必胜之道:访google adwords经理(上)_google推广
·成功经验谈:运营blog的21个具体方法_网络编辑
相关主题
  • 使用JSP + JAVABEAN + XML 开发的一个例子-JSP教程,Jsp/Servlet
  • 使用JSP + JAVABEAN + XML 开发的一个例子-JSP教程,Jsp/Servlet
  • 使用jsp实现word、excel格式报表打印-JSP教程,Jsp/Servlet
  • 使用JSP对文件下载的控制-JSP教程,Jsp/Servlet
  • 使用JSP读取客户端信息-JSP教程,Jsp/Servlet
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭