我只是在做一个java tomcat项目,它在数据库中进行一些查询,然后返回一些网页的文件路径。
现在我已经在web.xml中映射了我唯一的类,并且webapp确实返回了一个url列表,这些url对应于我本地磁盘中的一些html页面。我在webapp中设置了一个侧框架,我的想法是我在输出页面中输出结果,如“file:/// file_path_of_html_page”,当点击此链接时,侧边框将显示html页面。
但实际上我得到了正确的链接但是当我点击它们时,没有任何反应,chrome告诉我“不允许加载本地资源”。即使我设置target =“_ blank”,链接也不起作用。但是当我在地址栏中输入它们时,“file:/// filepath”都可以。我已经移动了eclipse项目文件夹中的所有html页面,但这没有帮助。
有什么建议可以做这个简单的任务吗?
答案 0 :(得分:4)
当父资源本身通过file://
提供时,由于安全原因,平均浏览器不允许打开http://
资源。如果您使它们具有完整的http://
链接,那么它将正常工作。
即使浏览器允许,当您在其他服务器上发布webapp时,此方法也不会起作用。 file://
资源是指本地磁盘文件系统,即客户端(具有webbrowser的用户)正在使用的系统。这通常是在物理上不同的机器中。客户端应事先在其自己的本地磁盘文件系统上准确复制这些资源,以使file://
链接起作用。
只需将HTML页面放在Web项目的公共Web根目录中(通常放置JSP文件的位置等),然后使用(相对)http://
链接来引用HTML页面。例如,http://localhost:8080/contextname/some.jsp
<a href="some.html">link to some html file</a>