• [AJAXJSP]使用DWR框架验证用户名是否存在


    [LIUYONGCN]

    [2011-06-30]

    [http://www.cnblogs.com/liuyongcn/]
    一 什么是DWR
        DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。


    二 实现步骤
    1-下载dwr框架的jar包(http://directwebremoting.org/dwr/)并将jar包放入环境
    2-配置web.xml

    <web-app>
     <!-- DWR配置 -->
     <servlet>
        <servlet-name>dwr</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
        </servlet>

     <servlet-mapping>
        <servlet-name>dwr</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
      </servlet-mapping>

      <!-- 其他略。。。。 -->


    </web-app>
    3-在包test下创建UserBiz类,用于测试

        public boolean checku(String s){
            System.out.println(s);
            if("test".equalsIgnoreCase(s)){
                return true;
            }else{
                return false;
            }
        }

    4-在WER-INF文件夹中创建dwr.xml,用于页面调用指定方法。 value指向指定的类,method指向指定的方法

    配置如下:
    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr//dwr30.dtd">
     <dwr> 
         <allow> 
             <create creator="new" javascript="DWRUserCheck"> 
                <param name="class" value="test.UserBiz" /> 
                <include method="checku"/>
             </create> 
        </allow> 
     </dwr>    

    配置完成后可以通过Http://localhost:8080/ajaxtest/dwr测试是否成功(ajaxtest是项目名),点DWRUserCheck进入具体内容页面
    可以在页面上输入测试数据测试是否可以达到想要的功能,
    页面上的以下3条信息需要写在功能的JSP页面上.否则DWRUserCheck.checku(uname,back);时候会提示找不到函数。
      <script type='text/javascript' src='/ajaxtest/dwr/engine.js'></script>
      <script type='text/javascript' src='/ajaxtest/dwr/interface/DWRUserCheck.js'></script>
      <script type='text/javascript' src='/ajaxtest/dwr/util.js'></script>、

    5-页面JS实现调用后台方法
      //script引用都为src='/项目名/dwr.....'     
      <script type='text/javascript' src='/ajaxtest/dwr/engine.js'></script>
      <script type='text/javascript' src='/ajaxtest/dwr/interface/DWRUserCheck.js'></script>
      <script type='text/javascript' src='/ajaxtest/dwr/util.js'></script>

    <script type="text/javascript">
          function checku(name){
              //获取登陆名
            var uname=name.value;
            if(!uname){
                //登陆名为空显示错误信息,并获取文本框焦点
                document.getElementById("div").innerHTML="<font size='2' color='orange'> 用户名不能为空</font>";
                name.focus();
                return;
            }
            //发送请求checku(参数,回调函数)
            DWRUserCheck.checku(uname,back);
          }
          //回调函数,完成操作后,最后调用这个函数显示结果
          function back(result){
            //result是接收方法的返回值
            if(result){
                    document.getElementById("div").innerHTML="<font size='2' color='orange'> 用户名已存在</font>"
            }else{
                    document.getElementById("div").innerHTML="<font size='2' color='green'> √</font>"
            }
          }   
     
      </script>

     

    <form action="index.jsp" method="post">
        <html:form action="/login">
            name : <html:text property="name" onblur="return checku(this)" /><div id="div" style="display:inline" ></div>
                <br/>
            <html:submit/><html:cancel/>
        </html:form>
    </form>
      

  • 相关阅读:
    javascript 正則表達式补充
    NOIP2010 引水入城
    [Elasticsearch] 集群的工作原理
    师傅快看!全国首个民间资本为主的物联网行业投融资平台诞生了!
    【解决】hive与hbase表结合级联查询的问题
    ssh2项目整合 struts2.1+hibernate3.3+spring3 基于hibernate注解和struts2注解
    Python网络爬虫(一):初步认识网络爬虫
    Android天气预报+百度天气接口
    《从零開始学Swift》学习笔记(Day 55)——使用try?和try!差别
    使用SQL Profile及SQL Tuning Advisor固定运行计划
  • 原文地址:https://www.cnblogs.com/liuyongcn/p/2096336.html
Copyright © 2020-2023  润新知