当需要访问服务器其他的文件资源怎么办?寻求解决方案

zhaoxichao 2006-01-18 01:05:14
tomcat发布的应用在C盘
D:目录下面有两个html文件:a.html和b.html
a.html大概的内容如下
<html>
<frame id="RightFrame" name="RightFrame" src="b.html">
</html>

tomcat的中的servlet通过,直接向response中写入a.html文件内容流的方式,把a.html的内容发给客户端
servlet的url是http://localhost:8080/test/getAHTML,那么访问b.html就变成了http://localhost:8080/test/b.html,因为这里是相对路径,a.html中嵌套的b.html看不到

有什么好办法?

...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qixiaorui 2006-01-20
  • 打赏
  • 举报
回复
SERVLET通过操作本地物理文件路径的方法访问A.HTML,而A.HTML通过HTTP协议访问B.HTML,由于A和B的连接界定于物理文件路径,显然,http协议里的url地址并没有绝对物理路径,所以直接的实现方法是没有的(个人认为)。很明显,上面几位都是通过将a.html和b.html的访问方式变成了一致以后才达到效果的。要么象访问A一样访问B,要么通过设定B所在的CONTEXT使得A和B的url根一致。
zhaoxichao 2006-01-20
  • 打赏
  • 举报
回复
采用1,配置法的方法更简单一些,但是有可能出现资源文件经常变换在文件系统中的位置,这样的话就需要经常修改tomcat应用发布的配置
2,程序法也就是 funcreal提出的方法,麻烦一些,因为a.html和b.html都是用户上传的文件,这样不可能让客户修改a.html的内容,那么只能是做一个文件解析的工作,出现超链接的话替换成servlet的方法,比较麻烦

TinyJimmy 2006-01-19
  • 打赏
  • 举报
回复
可以的,
1. 配置法
将你D:文件夹也做成一个Web目录. Tomcat的服务器定义里面需要加一句话, 怎么加忘了

2. 程序法
作为文件流, 写一个Servlet, 读取文件返回
funcreal 2006-01-19
  • 打赏
  • 举报
回复
如果a.htm变成了字节流,显然是无法执行<frame id="RightFrame" name="RightFrame" src="b.html">的。似乎挺困难的。

是不是可以这样:

<frame id="RightFrame" name="RightFrame" src="getBHTML">写在a.html中,getBHTML是一个servlet,它可以向你访问A那样去得到B。我觉得行
Little_qd 2006-01-19
  • 打赏
  • 举报
回复
通过应用访问绝对地址,绝对地址之间还有调用关系
好像做不到
zhangji__2000 2006-01-18
  • 打赏
  • 举报
回复
<%=request.getContextPath()%>可以找到文件项目根,然后再去设置对应的绝对路径吧,不过这个办法不是很好

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧