惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
L
LangChain Blog
博客园_首页
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
月光博客
月光博客
S
Schneier on Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
Vercel News
Vercel News
P
Privacy International News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
J
Java Code Geeks
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
有赞技术团队
有赞技术团队
A
Arctic Wolf
I
InfoQ
T
Tor Project blog
Attack and Defense Labs
Attack and Defense Labs
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
K
Kaspersky official blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Recent Announcements
Recent Announcements
D
Docker
TaoSecurity Blog
TaoSecurity Blog
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
T
Troy Hunt's Blog
Help Net Security
Help Net Security
量子位
罗磊的独立博客
C
Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 【当耐特】
腾讯CDC
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
小众软件
小众软件
N
Netflix TechBlog - Medium

博客园 - lodestar

一张图掌握数据存储 使用xtrabackup实现mysql定时热备份 开发篇1:使用原生api和Langchain调用大模型 预热篇2:从RNN到Transformmer 预热篇1:大模型训练显卡选型 macbook安装scala、hadoop、saprk环境 centos6.5 squid安装 一次linux服务器黑客入侵后处理 linux上搭建svn服务器 Windows系统下Oracle每天自动备份 android中listView的几点总结 使用template method模式简化android列表页面 andorid进度条使用 andorid定时器应用 - lodestar Android网络应用(第一部分) - lodestar 错误数据导致java.lang.IllegalArgumentException:Unsupported configuration attributes 使用ACEGI搭建权限系统:第三部分 acegi安全框架使用:第二部分 使用ACEGI实现权限控制,第一部分
ajax实现用户名存在校验
lodestar · 2011-11-29 · via 博客园 - lodestar

ajax方式实现:用户名在数据库中的存在校验,网上非常多了
1、可以用javaScript调用action
if(window.ActiveXObject)
  {
   xmlHttpd = new ActiveXObject("Microsoft.XMLHTTP");    
  }
   else if(window.XMLHttpRequest)
  {
   xmlHttpd = new XMLHttpRequest();
  }
  
uri = encodeURI(uri + "?" + key:value); 

xmlHttpd.open("post",uri,false);
    
xmlHttpd.onreadystatechange = function()
  {
   if(xmlHttpd.readyState==4){
    if(xmlHttpd.status==200){
     //ajax调用成功后的操作
     var rt = xmlHttpd.responseText.replace(/\s/ig,'');
     ***********
     }
    }
  }
  
xmlHttpd.send(null);
 }
注意事项:
1、后台如果是strtus2的话,key要在action中注入,或者采用标准写法:实体类.属性。struts2会使用拦截器构造实体类,并注入action
2、如果action的编码是utf-8,页面编码是gbk,那么参数在action中是乱码,需进行编码转换
3、返回参数也是一样,如果页面和action的编码不一致的话,response要设置编码setCharacterEncoding("GBK"),否则回传中文会出现乱码

2.jquery实现
$(function() {
         $("#rolename").bind("blur", function(){
      var rolename=$.trim($("#rolename").val());
      if (rolename.length > 0)
      {
     $.get("validateRole.action",
        $("#newrole").serialize(), //序列化表单数据
        callback,"html");
      }
   })
        })
 //接收服务器返回的数值,将服务器返回的数据动态的显示在页面上
    function callback(data){
      var rt = data.replace(/\s/ig,'');
      if (rt == 2){
       $("#showResult").html("角色名已存在");
       $("#rolename").focus();
      } else if (rt == 3){
       $("#showResult").html("角色验证失败请联系管理员");
      } else if (rt == 1){
       $("#showResult").text("*格式:ROLE_");
      }
    }
   
 jquery的serialize会自动构造key:value参数,注意事项同js实现
   
2.服务器端使用HttpServletResponse.getWriter获得PrintWriter对象,回写返回信息
 也可以使用dwr调用,将整个action状态作为josn返回