java吧 关注:1,221,070贴子:12,672,578
  • 15回复贴,共1

大神们过来问个问题,问个弱智问题

只看楼主收藏回复

jsp页面是个下载页面,有文件名和相应的下载操作,当我点击下载这个超链接时,超链接指向一个servlet并传送相关参数,那为什么sevlet处理完后,页面还是jsp页面下载,而不是跳转到servlet页面呢?


IP属地:上海来自Android客户端1楼2016-03-16 20:45回复
    我servlet中没有进行页面跳转操作啊


    IP属地:上海来自Android客户端2楼2016-03-16 20:47
    回复
      有框架了吗?没用的话,你在servlet里面要处理响应啊


      IP属地:四川来自iPhone客户端3楼2016-03-16 20:47
      收起回复
        顶顶顶,有谁能解答一下吗


        IP属地:上海来自Android客户端4楼2016-03-16 21:07
        回复
          可以直接用httpresponse输出流


          IP属地:河北来自iPhone客户端5楼2016-03-16 21:29
          回复
            jsp也就是一个servlet


            IP属地:河北来自iPhone客户端6楼2016-03-16 21:29
            回复
              protected void doPost(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, IOException {
              String id = req.getParameter("id");
              String savepath;
              ResourceService rService = new ResourceService();
              try {
              Resource resource = rService.findById(id);
              savepath = resource.getSavepath();
              String filename=resource.getRealname();
              File file = new File(savepath);
              if (file.exists()) {
              resp.setCharacterEncoding("utf-8");
              resp.setHeader("content-disposition", "attchment;filename="
              + filename);
              FileInputStream fStream = new FileInputStream(file);
              OutputStream fOutputStream = resp.getOutputStream();
              IOUtils.copy(fStream, fOutputStream);
              fOutputStream.close();
              fStream.close();
              }
              else{
              req.setAttribute("msg", "文件不存在");
              req.getRequestDispatcher("/showresource.jsp").forward(req, resp);
              }
              } catch (SQLException e) {
              e.printStackTrace();
              req.setAttribute("msg", "文件下载失败");
              req.getRequestDispatcher("/showresource.jsp").forward(req, resp);
              }


              IP属地:陕西7楼2016-03-16 21:40
              回复