PHPRPCのJAVAルーチン

3330 ワード

PHPRPCの最大のポイントは、ブラウザ環境でJavaScriptを通じてサーバ側の関数と方法を呼び出すことをサポートすることです.従来のajax方式ではできなかったことや難しいことを簡単にすることができます.このハイライトでさらに大きなハイライトは、ブラウザ環境でドメイン間呼び出しを直接サポートすることです.また、ドメイン間では、異なるアプリケーションに対して異なる実装が行われています.これはSOAPではできません.
PHPRPCのJAVAの小さいルーチン、ユーザー名の検出を実現します
クライアント(server_user.jsp):

<html>
  <TITLE> Sign users </TITLE>
<head>
<script type="text/javascript" src="phprpc_client.js"></script>
</head>
<body>

<div align="center">
  :<input type="text" id="username" />
  :<input type="password" id="password" />
<input type="button" value="  " id="loginbtn" />
</div>
<div id="feedback">

</div>
    <script type="text/javascript">...  
       
        var username = document.getElementById('username').value;
        var password = document.getElementById('password').value;

        var feedback = document.getElementById('feedback');
 
        var rpc_client = new PHPRPC_Client('http://localhost:8080/phprpc/signuser/server_user.jsp', ['validate']);
        document.getElementById("loginbtn").onclick= function() ...{   
        feedback.innerHTML = "waiting...";   
         rpc_client.validate(username, function (result) ...{  
           feedback.innerHTML= result;   
        });   
        }   
    </script>  

</body>
</html>

サーバ側(server.jsp):

    <%@ page import="org.phprpc.*" %>   
    <%@ page import="classmate.*" %>   
    <%   
     PHPRPC_Server phprpc_server = new PHPRPC_Server();  
    
     SignUpAction sign=new SignUpAction();
     phprpc_server.add("validate", sign);   
     phprpc_server.start(request, response);   
    %>   

クラスメソッド(SignUpAction.java,DB.javaの2つ):
package classmate;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

public class SignUpAction ...{
    public String validate(String uname)...{
     
         String result="";
        //       
        //     
         DB db = new DB();      
           ResultSet rs;
         int insRes = 0;
         String strSql=null;
        //         
         strSql = "select * from users where Uname='" + uname + "'";
         rs = db.executeQuery(strSql);
      try...{         
      
           if (!rs.next()) ...{
             
              result="user is ok";
               
             } else...{
               
                result="user is occpied";
             }
         }
     
     
        catch(SQLException e)...{
           e.printStackTrace();
          }      
           
      return result;
     }
}