//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 中的变量 } }
//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>
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)
你是把flash的变量传递给servlet还是怎么传 啊!上面的代码也莫名其妙的。
在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>
//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 中的变量
}
}
你想说的是不是在flash有一个action和timer经过一段时间后自动打开servlet?
在flash中你的url要用完整的地址:
如果url.target 能设置的话建议你设置成_blank
看看。
不知道你是不是这个意思。建议你以后说话说的清楚一点,
你想做什么?出现什么错误?把有必要的代码和错误提示都写清楚?
你这样说话神仙也帮不了你 啊!!
希望能帮上你!!!!!!!!
我要的是在一个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的输出
//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>
使用/servlet/CJS10003Servlet或者http://localhost:8080/servlet/CJS10003Servlet