现在的web项目用eclipse编写,并部署在eclipse内嵌的tomcat上或者非内嵌的tomcat上。
这个web项目涉及到文件上传并显示。
要上传的是包含html文件的zip包。
使用smartupload上传。因此有两种上传方式:
1.使用物理路径上传,设置一个目录比如c:/temp。所有文件都上传到以这个目录为根目录的文件系统中。
比如上传了一个zip并解压成为:
c:\temp\1\a.html。
然后我要在jsp页面的frame中显示这个a.html。
显然下面这种做法是不行的:
<frame width="1024" height="768" src="c:\temp\1\a.html"></frame>
那么servlet和jsp中应该如何编写代码呢?2.使用虚拟路径上传。这时在servlet的代码中建立目录,问题是建立的目录比如名为"1"的目录始终建立在tomcat的根目录下(如果是部署在非内嵌的tomcat上)或者建立在eclipse的根目录下(如果使用eclipse内嵌tomcat运行这个应用)。
如果想在tomcat的webapps中对应应用目录下建立新目录代码应该如何编写?求以上两种方法各自的解决方案。

解决方案 »

  1.   

       <frame width="1024" height="768" src="c:\temp\1\a.html"></frame>写一个方法 ,读取 html 文件中的内容 ,然后  out 到  jsp 中  ,或者构建 一个  html 的数据格式 ,让后append 到jsp 的 frame 中 (我用 jQuery 就是采用的这种方式 )  $.ajax(
           url : ..,
           ....
           type : html,
           ...
           success : fillDate(),
      );   function fillDate(date){
            $("#myframe").html(date);
            ...
       }
      

  2.   

    to tuo_bing:
    这种方法有一个问题。
    其实在c:\temp\1目录中还有其它文件,甚至还有子目录。a.html本身就是一个复杂的html页面,这个页面中引用了其它文件甚至子目录中的文件。
      

  3.   


       这样的话 ,我可不可以将上传的所有的 html 文件在 jsp 页面上面形成一个列表 ,就像新闻列表一样 ,显示一个标题 ,然后点击 链接 则可以直接访问这个  html 文件  
      

  4.   


    就用递归法,将目录下面的所有文件都读取出来,然后在后台生成html标签,然后在返回给前台页面显示
      

  5.   

    不是让用户选择什么页面浏览,而是让a.html中的frame引出其它的页面。
      

  6.   

    最后还是用了response.sendRedirect(...)。