从业务角度来看,的问题如下
我们有许多共享文件夹供人们使用,我们称之为//shared/the/drive
。然而,我们的服务器可能知道这个共享驱动器是另一个名称,也许是//ir83pn3br8mwhonamesthesethingsanyway/the/drive
,因为网络组坚持使用令人难以置信的混乱服务器名称。对于大多数服务器来说,使用简单的名称可以很好地工作,但在这台服务器上,它只是工作不正常。因此,在我们的代码中,我们的问题的附带条件是,就像"哦,你在使用shared
——我们将用stupid name from networking
替换它
好的,现在转到更技术的方面:
我有一个FileItem
(ApachecommonsFileUpload模块)对象,其名称可能为//shared/the/drive/stuff/plans.doc
。我需要创建一个引用//stupidname/the/drive/stuff/plans.doc
的FileItem
。我该怎么办?
我应该编辑JSP中的请求对象吗?这听起来是个坏主意。
我应该使用反射来编辑FileItem对象吗?这听起来更糟糕。
我不是一个前端的家伙(注意我有投票权的标签…哈哈),真的。。。更像一个服务器花花公子。。。这东西掉到我的盘子里了。是否可以在文本框到达请求之前拦截它,将更改移动到客户端?
我不可能是第一个遇到这个问题的人。我不一定在寻找代码(我介意吗?不,我不会。)但最受欢迎的是,以"最佳实践"的方式来处理这类事情(改变用户输入的内容)。
在处理分布式文件系统时,有一个用户可以看到和处理的"假路径"和一个表示实际节点的后端路径,允许您在收到请求的上下文中操作文件,这并不罕见。
你在网上点击的每一个页面都不是由你在浏览器中键入的物理URL表示的。CMS系统中的CDN上的文件是从数据库中动态创建的。。。。无论什么
没有必要对任何物体进行黑客攻击。你只需要用另一个对象来包装它们,这个对象包含它们的瞬态属性,比如我这次要访问该文件的位置。