java flex xml_FLEX与JAVA的交互问题 -DOM4J-xml
展開全部
沒滿意答案,我自己回答.我也只是初學者,水平非常有限,這未必正確,但希望給需要62616964757a686964616fe4b893e5b19e31333335326162這方面信息的人一個參考: 我寫的是登錄環節,輸入密碼,帳號,到java端的servlet,servlet再去數據庫查詢,返回信息到登錄頁面. 1.我上面的flex項目已經以xml格式發送到java端的servlet. 下面提供flex 下面寫servlet的說明: 我這是用dom4j,沒有的人先去網上下在這個包,然后導入, import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.ResultSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import java.sql.DriverManager; import java.sql.Statement; //下面一個class本來好像是dom4j里面,當時什么情況忘記了,反正這樣能實現效果 class Dom4jUtil1 { public static void writeDocToOut(Document doc, String sCharSet, OutputStream out) { if(null==doc)return ; OutputFormat fmt = new OutputFormat(" ", true, sCharSet); try { org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(out, fmt); doc.setXMLEncoding(sCharSet); xmlWriter.write(doc); xmlWriter.close(); } catch (Exception e) { e.printStackTrace(); }} public static Document getDocFromStream(InputStream in) { Document doc = null; try { doc = new SAXReader().read(in); } catch (Exception e) { } return doc; } } //以上可以復制不改,永恒不變,下面是自己寫的servlet-->loginxiaow () public class loginxiaow extends HttpServlet { //構造方法,我抄的,有什么影響不知道. public loginxiaow() { super(); } //也是抄的 public void destroy() { super.destroy(); // Just puts "destroy" string in log } //下面自己的實際需要 private void xiaow(HttpServletRequest request, HttpServletResponse response) throws Exception{ Document rtdoc=null; //傳輸信息必須的部分 InputStream in; in = request.getInputStream(); //Dom4jUtil1,這就是上面那個Dom4jUtil1 class Document reqDoc=Dom4jUtil1.getDocFromStream(in); Element root=reqDoc.getRootElement();//Element是元素,xml里面的信息 //xml里面的,大概是這樣,其中xxx就是你的是String action取得值 String action=root.valueOf("@ACTION"); System.out.println("action=="+action);//測試用,java端顯示 if("loginxiaow".equalsIgnoreCase(action)){//注冊請求用戶信息 // System.out.println("username=="+root.valueOf("@USERNAME")); // System.out.println("password=="+root.valueOf("@PASSWORD")); } String username=root.valueOf("@USERNAME"); String password=root.valueOf("@PASSWORD"); if(username!=null&&password!=null) {//sql字符串,就是輸入到數據庫的語句,整句輸出 String sql="select * from xiaow_user where [user]='"+username+"' and password='"+password+"'"; System.out.println(sql); SQL(sql); System.out.println(); } if(canGo==true)//canGo判斷是否有權限進入下一個頁面,不過這個寫法很爛 { canGo=false; rtdoc=DocumentHelper.createDocument(); System.out.println("if(canGo==true):"+canGo); Element rtroot=rtdoc.addElement("DATAPACKET");//創建 元素/節點 rtroot.addAttribute("message", "登錄成功");//屬性message System.out.println("登錄成功"); OutputStream out=response.getOutputStream(); Dom4jUtil1.writeDocToOut(rtdoc, "UTF-8", out); out.flush(); out.close(); }else{ rtdoc=DocumentHelper.createDocument(); Element rtroot=rtdoc.addElement("DATAPACKET"); rtroot.addAttribute("message", "密碼錯誤"); System.out.println("密碼錯誤"); System.out.println("if(canGo==false):"+canGo); OutputStream out=response.getOutputStream(); Dom4jUtil1.writeDocToOut(rtdoc, "UTF-8", out); out.flush(); out.close(); } OutputStream out=response.getOutputStream(); Dom4jUtil1.writeDocToOut(rtdoc, "UTF-8", out); out.flush(); out.close(); } boolean canGo=false; public void SQL(String sql) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加載JDBC驅動 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=dscy9999"; //連接服務器和數據庫,我的是這個dscy9999 String userName = "admin"; //數據庫用戶名 String userPwd = "admin"; //數據庫密碼 Connection dbConn; Statement stmt =null; ResultSet rt=null; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); stmt=dbConn.createStatement(); System.out.println("連接成功,rt="+rt); //如果連接成功 控制臺輸出連接成功 rt=stmt.executeQuery(sql); //遍歷結果集 while(rt.next()) { if(null!=rt.getString("user")&&null!=rt.getString("password")) { canGo=true; System.out.println("canGo=true;"+canGo); } else{System.out.println("if(null!=");} System.out.println("用戶:"+rt.getString("user")+"密碼:"+rt.getString("password")) ; } rt.close(); dbConn.close(); } catch (Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { xiaow(request,response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { doGet(request,response); }} 大概是這樣,我也不太會,但是我這個功能實現了
本回答由提問者推薦
已贊過
已踩過<
你對這個回答的評價是?
評論
收起
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java flex xml_FLEX与JAVA的交互问题 -DOM4J-xml的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java arraylist初始大小_J
- 下一篇: java grizzly_Grizzly