说详细点?什么叫得不到servlet的返回值?
flash 里面有链接到servlet?

解决方案 »

  1.   

    你想怎么得到servlet的返回值啊
      

  2.   

    hehe ,就是,我也帮不了你 :)
      

  3.   

    //the flash as
    resultxml = new XML();
    resultxml.load(servletpath)
    //the servlet file
    ...
    StringBuffer myXml=new StringBuffer("");
    myXml.append("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
    myXml.append(......);
    ...
    out.println(myxml)
      

  4.   

    楼主说的太不清楚了,
    你是把flash的变量传递给servlet还是怎么传 啊!上面的代码也莫名其妙的。
      

  5.   

    我在flash player(6.0)或者直接由ie打开的时候可以load到,(reusltxm.load(...))但是我放到tomcat(4.1.18)中,就不可以load到东西,甚至那个serlvet都没有执行,(servlet中一上来就System.out.println("servlet file run")都没有输出,那就是说servlet没有执行到对巴?)
      

  6.   

    虽然没大听懂,但servlet没执行,是不是tomcat的web.xml没配置对丫
      

  7.   

    tomcat的web.xml没配置对
    在Web应用程序目录里的WEB-INF\web.xml里设置一下,如下:
    <servlet>
         <servlet-name>随便写</servlet-name>
         <servlet-class>com.****.****.A</servlet-class>
    </servlet><servlet-mapping>
         <servlet-name>要与上面的一致</servlet-name>
         <url-pattern>/servlet/a</url-pattern>
    </servlet-mapping>
      

  8.   

    诶,当然不是没有配置的问题,那个servlet单独用ie运行过的没有问题,我用flash player调用国也没有问题的,
      

  9.   

    我把所有的代码写出来好了:
    //servlet
    import java.io.*;
    import java.sql.*;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import javax.servlet.*;;
    public class CJS10003Servlet extends HttpServlet {   public void doPost(HttpServletRequest request, HttpServletResponse response)
                  throws IOException, ServletException {

    System.out.println("CJS10003Servlet run!!");
    response.setHeader("Pragma","No-cache"); 
    response.setHeader("Cache-Control","no-cache"); 
    response.setDateHeader("Expires", 0); 

    HttpSession session = request.getSession();
    PrintWriter out = response.getWriter();

    String loginFlag = "0";
    /*
    if(session.getAttribute("loginFlag") != null){
    loginFlag = (String)session.getAttribute("loginFlag");
    }
    */
    String language = "jp";
    if(request.getParameter("language")!=null){
    language = request.getParameter("language");
    }
    System.out.println("language is:" + language);
    try{
    String services = selectServices(loginFlag,language);
    StringBuffer sendXML = new StringBuffer("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>");
    sendXML.append("<services_res>");
    sendXML.append(services);
    sendXML.append("</services_res>");
    out.println(sendXML.toString());
    System.out.println(sendXML.toString());
    }
    catch(Exception e){
    e.printStackTrace();
    }
    System.out.println("CJS10003Servlet end run!!");
    } private String selectServices(String loginFlag,String language) throws Exception{

    //select data.
         StringBuffer services = new StringBuffer("");
        
         StringBuffer selectSerSQL = new StringBuffer("SELECT handate,naiyou FROM document_tbl,webcontrol_tbl WHERE document_tbl.docid=webcontrol_tbl.docid AND ");
        
         selectSerSQL.append(" dockbn ='1' AND webcontrol_tbl.lankbn = ");
         //selectSerSQL.append("'").append(language).append("'");
         if("jp".equalsIgnoreCase(language)){
         selectSerSQL.append("'1'");
         }
         else if("en".equalsIgnoreCase(language)){
         selectSerSQL.append("'2'");
         }
         else{
         selectSerSQL.append("'3'");
         }
        // selectSerSQL.append("1");
       if("0".equals(loginFlag)){
         selectSerSQL.append(" AND DOCUMENT_TBL.docbigbun ='1' ");
         }
         System.out.println(selectSerSQL.toString());
             Connection con=null;
         try{
         con = new g_CommonDB();//get a connnection
         System.out.println(selectSerSQL.toString());
         ResultSet rs = dbHelper.g_doSQLSelect(selectSerSQL.toString());
         int i=0;
         while(rs.next()){
         services.append("<service>");
         services.append(rs.getString("handate") + " " +rs.getString("naiyou") + " " );
         services.append("</service>");
         i++;
         }
         rs.close();
         services= new StringBuffer("<service-number>" + i + "</service-number>").append(services);
         }
        catch(Exception e){
         e.printStackTrace();
         services = new StringBuffer("");
        }
        finally{
        try{
        dbHelper.g_doCloseConnection();
        }
        catch(Exception e){
        e.printStackTrace();
        services = new StringBuffer("");
        }
        }

    return services.toString();
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                  throws IOException, ServletException {
         doPost(request,response);         
    }
    }
    //web.xml的相关一部分
      <servlet>
       <servlet-name>GetServiceFile</servlet-name>
       <servlet-class>ddk.web.business.relese.service.CJS10003Servlet</servlet-class>
      </servlet>
    <servlet-mapping>
       <servlet-name>GetServiceFile</servlet-name>
       <url-pattern>/relese/misc/GetServiceFile</url-pattern>
      </servlet-mapping>
    //flash as 
          //on the frame
    var str_serviceInfo = "http://hostlocal:8080/ddk/relese/misc/GetServiceFile";
    serviceInfo = new XML();
    serviceInfo.ignoreWhite = true;
    serviceInfo.onLoad = retrieveServiceInfo;
          //on a button press
    serviceInfo.load(str_serviceInfo + "?language=jp");
    function retrieveServiceInfo(success){
    if(success == true){
    trace(language + ":" + serviceInfo);
    serviceRowNum = serviceInfo.firstChild.childNodes[0].firstChild.nodeValue;
                      txtName.text = serviceInfo.firstChild.childNodes[1].firstChild.nodeValue;//text是名为txtName的movieClip 中的变量
             }
    }
      

  10.   

    还是不明白楼上的意思:
    你想说的是不是在flash有一个action和timer经过一段时间后自动打开servlet?
    在flash中你的url要用完整的地址:
    如果url.target 能设置的话建议你设置成_blank
    看看。
    不知道你是不是这个意思。建议你以后说话说的清楚一点,
    你想做什么?出现什么错误?把有必要的代码和错误提示都写清楚?
    你这样说话神仙也帮不了你 啊!!
    希望能帮上你!!!!!!!!
      

  11.   

    to:aleccheung(不能让自己再堕落了)
    我要的是在一个button press的时候读取一个servlet(也就是CJS10003Servlet,这个servlet主要是读数据库)输出(也就是一个xml)到这个flash中,而不是打开一个新的页面我用的是绝对地址德阿(var str_serviceInfo = "http://hostlocal:8080/ddk/relese/misc/GetServiceFile";)这难道还不是绝对地址的阿现在问题就是没有出错提示的阿,代码都在上面了,不对劲的地方就是我的flash用flash player打开的时候可以得到servlet的输出,把这个flash放到一个jsp中,然后jsp放到tomcat中就等不到servlet的输出
      

  12.   

    //the jsp include the flash there is the flash file only
    //PFL10003.swf is my flash file name;
    <%
    response.setHeader("Pragma","No-cache"); 
    response.setHeader("Cache-Control","no-cache"); 
    response.setDateHeader("Expires", 0); 
    %>
    <HTML>
    <HEAD>
    <meta http-equiv=Content-Type content="text/html;  charset=SHIFT_JIS">
    <TITLE>ddktop</TITLE>
    </HEAD>
    <BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <!-- URL's used in the movie-->
    <!-- text used in the movie-->
    <!--SERVICE INFOMANUAL INFO2003/02/15  DS service info released2003/02/15  DL service info released2003/03/10  DS service info updatedLOGINCANCEL--><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
     codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
     WIDTH="800" HEIGHT="600" id="ddktop" ALIGN="">
     <PARAM NAME=movie VALUE="PFL10003.swf"> <PARAM NAME=loop VALUE=false> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="ddktop.swf" loop=false quality=high bgcolor=#FFFFFF  WIDTH="800" HEIGHT="600" NAME="ddktop" ALIGN=""
     TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
    </OBJECT>
    </BODY>
    </HTML>
      

  13.   

    调用servlet不是使用绝对地址的。
    使用/servlet/CJS10003Servlet或者http://localhost:8080/servlet/CJS10003Servlet