`
zjh0588
  • 浏览: 65129 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

AJAX+JSON+DOJO+MYSQL 登陆和查询

    博客分类:
  • java
阅读更多

第一步: 建立mysql 数据库,创建noteuser表和增加1条信息

sql 代码
  1. CREATE TABLE `noteuser` (   
  2.   `userid` int(5) NOT NULL auto_increment,   
  3.   `username` varchar(16) character set utf8 default NULL,   
  4.   `passwordvarchar(16) character set utf8 default NULL,   
  5.   `regtime` datetime default NULL,   
  6.   `NickName` varchar(16) character set utf8 default NULL,   
  7.   `Sex` int(1) unsigned default NULL,   
  8.   `Email` varchar(15) character set utf8 default NULL,   
  9.   `age` int(2) unsigned default NULL,   
  10.   PRIMARY KEY  (`userid`)   
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;   
  12.   
  13.   
  14. INSERT INTO noteuser(username,password,regtime,NickName,Sex,Email,age) VALUES ('YuKy','11',now(),'Zoo.YuKy',1,'zjh588@gmail.com',21);   
  15. //自己可以增加多几条信息  

第二步:1.下载DOJO:http://dojotoolkit.org/downloads 我用的是dojo-0.4.3-ajax

           2.下载jsonrpc.js和jsonrpc-1.0.jar,http://oss.metaparadigm.com/jsonrpc-dist/json-rpc-java-1.0.zip

           3.在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ 建立新文件夹dojo_doc,把dojo-0.4.3-ajax解压到dojo文件夹内,然后把json-rpc-java-1.0.zip里的jsonrpc.js放在...\webapps\dojo_doc\js的文件夹里面.在js文件夹里增加clock.js,contentpane.js和aa.js.(其实clock.js和contentpane.js就是dojo-0.4.3-ajax里面的\demos\gfx\clock.html和\tests\test_docs.html的例子)

     把clock.html和test_docs.html的javascript(从dojo.require("");这里开始到)部分保存在clock.js和contentpane.js里面.
     记得把..\demos\gfx\下的\images\时钟图片也复制到..\webapps\dojo_doc\里.

//--把下面的代码复制到aa.js

js 代码
  1. function clrscr()   
  2. {   
  3.     resultNode.value = "";   
  4. }   
  5.   
  6. function print(s)   
  7. {   
  8.     resultNode.value += "" + s;   
  9.     resultNode.scrollTop = resultNode.scrollHeight;   
  10. }   
  11.   
  12.   
  13. function onLoad()   
  14. {   
  15.     resultNode = document.getElementById("result");   
  16.   
  17.     try {   
  18.     jsonrpc = new JSONRpcClient("JSON-RPC");   
  19.     } catch(e) {   
  20.     if(e.message) alert(e.message);   
  21.     else alert(e);   
  22.     }   
  23. }   
  24.   
  25. function loginUser(){   
  26.     var user = document.getElementById("username").value;   
  27.     var pass = document.getElementById("password").value;   
  28.   
  29.     if(user == null || pass == null ||user == "" || pass == ""){   
  30.         alert("Please enter username and password!");   
  31.         }else{   
  32.             var ss = jsonrpc.user.loginUser(user,pass);   
  33.             alert(ss);   
  34.             }   
  35.     }   
  36.        
  37. function dogetUserInfo(){   
  38.     clrscr();   
  39.      print("Running user\n\n");   
  40.       try {   
  41.             print("user.getUserInfo()");   
  42.             print(" returns " + jsonrpc.user.getUserInfo() + "\n");   
  43.           } catch(e) {   
  44.     print(" Exception: \n\n" + e);   
  45.     }   
  46. }   

第三步:编写JAVA程序,jsonTest.java

java 代码
  1. package com.metaparadigm.jsonrpc.test;   
  2.   
  3. import java.io.Serializable;   
  4. import java.sql.*;   
  5.   
  6.   
  7. public class jsonTest implements Serializable   
  8. {   
  9.     private final static long serialVersionUID = 1;   
  10.     private String strSql;   
  11.     private ResultSet rs;   
  12.     private Statement stmt = null;   
  13.     private Connection conn = null;   
  14.        
  15.     public Connection getConnection(){   
  16.         try{   
  17.             Class.forName("org.gjt.mm.mysql.Driver");   
  18.             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8","root","root");   
  19.         }catch(Exception ex){   
  20.             ex.printStackTrace();   
  21.         }   
  22.         return conn;   
  23.     }   
  24.      public String loginUser(String name,String pass){   
  25.             String flag = "登陆失败";   
  26.             try{   
  27.                 strSql = "select * from noteuser where username like '"+name+"'and password like '"+pass+"'";   
  28.                 conn = getConnection();   
  29.                 stmt = conn.createStatement();   
  30.                 rs = stmt.executeQuery(strSql);   
  31.                 if(rs.next()){   
  32.                     flag = "登陆成功";   
  33.                 }   
  34.             }catch(Exception e){   
  35.                 flag = "登陆出现异常";   
  36.                 e.printStackTrace();   
  37.             }finally{   
  38.                 try{   
  39.                 conn.close();   
  40.                 stmt.close();   
  41.                 rs.close();   
  42.                 }catch(Exception e){}   
  43.                    
  44.             }   
  45.             return flag;   
  46.         }   
  47.            
  48.         public String[] getUserInfo(){   
  49.         String[] row = null;   
  50.         try{   
  51.             strSql = "select username from noteuser";   
  52.             conn = getConnection();   
  53.             stmt = conn.createStatement();   
  54.             rs = stmt.executeQuery(strSql);   
  55.             int i = 0;             
  56.             while(rs.next()){   
  57.                 i++;   
  58.             }   
  59.             System.out.println(i);   
  60.             rs = stmt.executeQuery(strSql);   
  61.             row = new String[i];   
  62.             i =0;    
  63.                
  64.             while(rs.next()){      
  65.                 row[i] = rs.getString(1);   
  66.                 i++;   
  67.             }   
  68.         }catch(Exception e){   
  69.             e.printStackTrace();   
  70.         }   
  71.         for(int j=0; j
  72.             System.out.println(row[j]);   
  73.            
  74.         return row;   
  75.     }   
  76.        
  77. }  
第四步: 写JSP页面:aa.jsp
xml 代码
  1. <%@   
  2. page contentType="text/html; charset=UTF-8" %><%@   
  3. page language="java" %><%@   
  4. page import="com.metaparadigm.jsonrpc.test.jsonTest"  
  5. %>  
  6. <jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge" />  
  7. <jsp:useBean id="user" scope="session" class="com.metaparadigm.jsonrpc.test.jsonTest"/>  
  8. <%JSONRPCBridge.registerObject("user", user); %>  
  9.   
  10. <script language="javascript" type="text/javascript">  
  11.         djConfig = {   
  12.             debugAtAllCosts: true;    
  13.             isDebug: true;   
  14.             dojoIframeHistoryUrl: "dojo-0.4.3-ajax/iframe_history.html";   
  15.             preventBackButtonFix: false    
  16.             };   
  17.         script>  
  18.         <script language="javascript" type="text/javascript" src="dojo-0.4.3-ajax/dojo.js">script>  
  19.         <script type="text/javascript" src="js/clock.js">script>  
  20.         <script type="text/javascript" src="js/contentpane.js">script>  
  21.         <script language="javascript" type="text/javascript" src="js/jsonrpc.js">script>  
  22.         <script type="text/javascript" src="js/aa.js">script>  
  23.            
  24. <html>  
  25.     <head>     
  26. <title>留言版-DOJOtitle>  
  27. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />          
  28. head>  
  29.   
  30. <body bgcolor="#ffffff" onLoad="onLoad()">  
  31.   
  32.   
  33.         <div dojoType="tabcontainer" style="width: 100%; height: 30em">  
  34.             <div dojoType="contentpane" label="用户登陆">  
  35.              <div dojoType="FloatingPane" class="stockPane" title="用户登陆框" id="pane"    
  36.                                  constrainToContainer="true" displayMaximizeAction="true">  
  37.                     <p>请输入你的用户名字和密码p>  
  38.                     <p>用户名:   
  39.                       <input type="text" id="username">  
  40.                   p>  
  41.                     <p>密   码:    
  42.                       <input type="password" id="password" >  
  43.                   p>  
  44.                     <p>  
  45.                       <input type="button" onClick="loginUser()" value="登陆" >p>  
  46.                     <p>  p>  
  47.               div>  
  48.             div>         
  49.            
  50.            
  51.         <div dojoType="contentpane" label=" 时 钟 ">             
  52.         <div id="gfx_holder" style="width: 385px; height: 385px;"><p>现在时间是: <span id="time">span>.p>  
  53.         <p>  
  54.           <button id="reset">恢复时间button>  
  55.         p>  
  56.         div>  
  57.         div>  
  58.                    
  59.         <div dojoType="contentpane" label="用 户 信 息">       
  60.         <div dojoType="FloatingPane" class="stockPane" title="Stock Form" id="pane" constrainToContainer="true" displayMaximizeAction="true">  
  61.        <h2>浏览信息h2>  
  62.         <textarea wrap="off" id="result" cols="80" rows="20">textarea>  
  63.        <a href="javascript:dogetUserInfo();">查看a>  
  64.         div>  
  65.         div>  
  66.            
  67.         div>  
  68.            
  69.     body>  
  70.        
  71. html>  

 第五步:配置WEB-INF(自己创建以下的文件夹,在这里不一一说明有什么作用)
      1.添加web.xml,在..\webapps\dojo_doc\WEB-INF文件夹,在\WEB-INF\添加web.xml,把以下代码复制进去

xml 代码
  1. <!---->xml version="1.0" encoding="ISO-8859-1"?>    
  2. <!---->>  
  3. <web-app>  
  4. <servlet>    
  5. <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServletservlet-name>    
  6. <servlet-class>com.metaparadigm.jsonrpc.JSONRPCServletservlet-class>    
  7. servlet>    
  8. <servlet-mapping>    
  9. <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServletservlet-name>    
  10. <url-pattern>/JSON-RPCurl-pattern>    
  11. servlet-mapping>  
  12. web-app>  

 2.添加jsonrpc-1.0.jar,把json-rpc-java-1.0.zip内的jsonrpc-1.0.jar复制到..\webapps\dojo_doc\WEB-INF\lib\里

      3.添加jsonTest.class,把jsonTest.java编译好的class文件在..\webapps\dojo_doc\WEB-

INF\classes\com\metaparadigm\jsonrpc\test\文件夹里.


第六步:测试,运行Tomcat,在地址栏输入http://localhost:8080/dojo_doc/aa.jsp,然后输入用户名yuky,密码11,看是否能登陆成功.

     我用了暑假实习时间(1个月)学习WEB编程,在实习前我只会JBDC+JSP简单连接数据库(分页都不会),在实习期间第1个星期--学习熟悉JSP+HTML环境,第2个星期--用Bean对象写了简单的留言版,第3个星期--学习AJAX+XML,第4个星期--就是现在的例子. 

    在这里说一下我学习心得,可以说我完全是个新手,因为我大学专业学的多半是C++,对于JAVA很少了解, 7月份才认真学起JAVA相关领域的编程.

    在我第三个星期的时候,实现了AJAX+XML,确实很高兴,因为抹去了JavaBean+HTML的每次刷新页面的工作,后来我发现AJAX+XML的web.xml配置很麻烦,和JAVA文件都要返回DOM节点,不然浏览页面就没办法识别,而且有时候AJAX+XML返回的数据不准确,会少1-2条数据,还有中文乱码的问题.可能是我学艺不精,写的程序不好才导致这些问题出现.

    在我第4个星期,就是现在,我用JSON实现了AJAX+XML的功能,它简单,易懂,这是后来才发现的,在我还没学会JSON的时候,在网络兜了很多大圈,因为每个网站说的内容都不一样,记得有个网站把JSON和XMLHttpRequest结合起来,我看了之后觉得,如果这样做那么跟AJAX+XML有何区别?直到我把json-rpc-java-1.0.zip内的jsonrpc-1.0.war解压出来,看完里面的hello.jsp的例子,我完全明白JSON的作用,它真的好用,当你真正发掘到jsonrpc-1.0.jar的作用,你就真正掌握了JSON,我在这里只是借花敬佛,希望每个初学JSON的人都找到一条最简单的路,不要向我这样,兜了那么大圈才知道答案已经出来了,只是自己发现太迟,像个盲头苍蝇到处乱撞!

     好吧!就写到这里,有哪里不懂可以留言大家互相讨论学习,,哪里说得不对,哪里写得不好,请大家指教.

分享到:
评论

相关推荐

    java ,AJAX树

    标题中的“Java, AJAX树”指的是使用Java编程语言和AJAX(Asynchronous JavaScript and XML)技术来实现的一种交互式树形结构。这种树形结构通常用于网页应用中,允许用户无需刷新整个页面即可动态更新和操作数据。...

    用ajax技术编写的聊天小软件源码

    5. **Ajax库和控件**:源码中可能包含了实用的Ajax控件,比如jQuery、Prototype、dojo等,这些库简化了Ajax操作,提供了诸如数据加载动画、错误处理等功能,提高开发效率。 6. **实时通信**:为了实现即时聊天,...

    Ajax与PHP基础教程.rar

    2. **AJAX库与框架**:简述jQuery和其他流行库(如Prototype、Dojo)如何简化Ajax开发。 3. **跨域问题与解决方案**:探讨Ajax的同源策略限制及JSONP、CORS等跨域解决方案。 ### 第五章 - PHP与Ajax结合 1. **创建...

    ssh框架用到的jar包

    - hibernate-core.jar:Hibernate的核心库,包括实体管理、会话管理和查询API。 - hibernate-entitymanager.jar:JPA(Java Persistence API)接口的实现。 - hibernate-jpa-2.1-api.jar:JPA规范的API。 - ...

    struts2.0常用功能练习

    7. **插件机制**:Struts2拥有丰富的插件库,如Struts2-dojo-plugin提供Ajax支持,Struts2-convention-plugin简化配置,Struts2-json-plugin处理JSON数据等。 8. **国际化(i18n)**:Struts2支持多语言,通过资源...

    Struts2框架使用的所有jar包

    3. `struts2-json-plugin.jar`:用于处理JSON格式的请求和响应,使得前后端交互更加灵活,尤其在AJAX应用中非常实用。 4. `struts2-dojo-plugin.jar`:提供了与Dojo JavaScript库的集成,方便在Web界面中使用Dojo...

    ssh框架搭建需要导入的jar(超级全)

    - `hibernate-core`: Hibernate的主要库,包含实体管理、会话和查询API。 - `hibernate-validator`: 实现了JSR-303/349 Bean验证规范。 - `mysql-connector-java`: MySQL数据库的JDBC驱动,根据实际使用的数据库...

    技术人员(IOSJAVA网页设计美工)的招聘要求.pdf

    * 需要熟悉JQuery、HTTP、XML、JSON、Dojo、AJAX、JavaScript等技术,以及熟悉iOS下网络通信机制。 * 如果有GOOGLE MAP/百度地图/高德地图、GPS定位和与手机端传感器通讯技术编程经验,优先考虑。 * 需要熟悉Oracle...

    ssh所有jar包

    - struts2-dojo-plugin:支持Dojo库,用于前端交互和AJAX功能。 - struts2-spring-plugin:使Struts2与Spring框架无缝集成。 3. Hibernate框架: - hibernate-core:Hibernate的主要库,包含ORM的核心功能。 - ...

    demo工程列表说明1

    【标题】"Demo工程列表说明1"涉及到的IT知识点涵盖了多个方面,主要集中在Web开发、框架使用、数据库连接池、并发处理、模板引擎、JSON处理、文件操作、前端库和框架等多个领域。以下是对这些知识点的详细说明: 1....

    技术人员(IOS JAVA 网页设计 美工)的招聘要求.docx

    4. **网络通信**:熟悉HTTP、XML、JSON,以及JQuery、Dojo、AJAX、JavaScript等,了解iOS下的网络通信机制。 5. **地图与定位**:有使用GOOGLE MAP、百度地图、高德地图的经验,以及GPS定位和手机传感器通讯技术编程...

    ssh框架所需jar包

    - `hibernate-core.jar`:Hibernate的核心库,包含实体管理、会话管理和查询API。 - `hibernate-entitymanager.jar`:支持JPA(Java Persistence API),提供ORM服务。 - `hibernate-validator.jar`:提供了JSR-...

    非常苛刻的java工作要求

    3. 熟悉各种Web前端技术,包括JavaScript、CSS、HTML4/5、(XHTML、XML、Ajax)、json、jstl、JQuery,jsp,对DWR、Bootstrap、EasyUI、DWZ、ExtJS有一定了解; 4. 熟悉Extjs,dojo,easyUI等及有相关项目开发经验者...

    SSH框架所需要的jar包

    - `hibernate-core.jar`:Hibernate的核心库,包含实体管理,会话和查询等。 - `hibernate-entitymanager.jar`:JPA(Java Persistence API)支持。 - `hibernate-validator.jar`:JSR 303/JSR 349规范实现,用于...

    struts2的所有jar包

    2. `struts2-dojo-plugin.jar`:提供了与Dojo JavaScript库的集成,帮助开发富客户端界面,提供强大的AJAX支持。 3. `struts2-json-plugin.jar`:支持JSON格式的数据交互,使得Struts2能很好地与现代Web服务和前端...

    ssh开发所需jar包

    - **struts2-json-plugin**: 提供JSON支持,方便与AJAX交互。 - **struts2-tiles-plugin**: 与Tiles框架集成,便于构建可重用的页面布局。 3. **Hibernate框架**: - **hibernate-core**: Hibernate的主要库,...

    Struts2需要的包

    6. `struts2-json-plugin.jar`:支持JSON(JavaScript Object Notation)数据格式的处理,用于前后端的数据交换,特别是在AJAX应用中。 7. `struts2-dojo-plugin.jar`(或`struts2-jquery-plugin.jar`等):这些是...

    前端JavaScript需要掌握的技能列表

    - **数据格式**:通常使用JSON或XML格式传输数据。 - **用户体验**:通过局部刷新页面内容,提供更加流畅的用户体验。 ### 6. Canvas HTML5中的Canvas元素提供了一个绘图板,可以在上面绘制图形或动画。学习Canvas...

    IBM JAVA培训计划

    - JSON/XML数据交换 - Ajax框架 ##### 8. UML与项目管理 - UML概念 - 类图、用例图 - CMM/PSP/TSP方法论 ##### 9. 职业素质 - 职业素养 - 礼仪与操守 ##### 10. 典型网络应用系统 - 需求分析 - 系统设计 - ...

Global site tag (gtag.js) - Google Analytics