第一个疑问
发明swt那帮人搞了个想法如下SWT.MULTI| SWT.V_SCROLL,从第一天写就知道这么写的效果就是即包含
MULTI样式又包含V_SCROLL样式,但一直不知道|的含义,猜想是java基本运算符,不知道执行了SWT.MULTI| SWT.V_SCROLL后底层是反算出来SWT.MULTI和 SWT.V_SCROLL的,困惑啊有知道的解释下,谢谢!CTabItem item = new CTabItem(parent, SWT.None | SWT.MULTI| SWT.V_SCROLL);第二个疑问
下面是一段jsp代码,利用forward转向下载文件,不知道为什么用迅雷下不了,用ie是正常的.<%
String filePath = "/"+request.getParameter("filePath");
String fileName = request.getParameter("fileName");
if(fileName==null||filePath==null)
return ;
  response.setContentType("application/x-download");
      response.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));
      try{
          RequestDispatcher dis = application.getRequestDispatcher(filePath);
          if(dis!= null){
              dis.forward(request,response);
          }
          response.flushBuffer();
      }catch(Exception e){
          e.printStackTrace();
      }finally{
      }
%>

解决方案 »

  1.   

    猜测:
    1. 那些变量只是一个位(它们都是整数的吧)
      比如说,一个整数总共有32位,用第一位代表是不是SWT.MULTI,用第二位代表是不是SWT.V_SCROLL 那SWT.V_SCROLL 么,SWT.MULTI应该是=1,SWT.V_SCROLL=2, 等等(它们都是2的整数次幂)
      给定一个整数,很容易通过看第一位是不是1来判定是不是SWT.MULTI,。2. 浏览器能认出转向,迅雷只能看下一人URL,不能重新指定吧
      

  2.   

    |表示或, 是位运算的或,而不是逻辑运算的或比如说二进制 0001 | 0010
    那么结果就是0011, 就是0x03
    而逻辑或只关心true和false, 而且java里面不允许非boolean值逻辑运算.
      

  3.   

    楼上的说的是准确的, 而且也不是搞SWT那帮人搞的, 这是C/C++常用的手法.
      

  4.   

    第二个问题很难讲, URL只是面向用户的,你不知道整个过程都传输了哪些东西,你也许错过了, 你也知道它整个基于HTTP的上层协议才行.
      

  5.   

    无意中发现答案其实<a herf='X.jsp?fileName=a.doc&filePath=x/a.doc'>答案既然如此简单,呵呵,这样迅雷也可以下载了,而且页面并不会跳转</a>