ajax action 用户名异步验证

本文介绍了一个结合JSP和Ajax技术实现的简单用户名验证系统。通过Ajax发送异步请求到服务器端JSP页面,检查用户名是否已被使用。文章展示了完整的JSP页面代码和部分后端验证逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsp 页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Ajax.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
<script type="text/javascript">
var request = false; 
var flag;  
function createXMLHttpRequest(){ 
   
	try {
			request = new XMLHttpRequest();
		} catch (trymicrosoft) {
			try {
				request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (othermicrosoft) {
				try {
					request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (failed) {
					request = false;
				}
			}
		}
	}

	function getCustomerInfo() {
		createXMLHttpRequest();
		alert(request);
		var phone = document.getElementById("userName").value;
		alert(phone);
		var url = "loginActionloginTest?user.userName="+phone;
		request.open("GET", url, true);
		request.onreadystatechange = updatePage;
		request.send(null);
		document.getElementById("msg").innerHTML = "正在验证……";
	}

	function updatePage() {
		if (request.readyState == 4) {
			if (request.status == 200) {
				var text = request.responseText;// 接收返回内容 
				alert(text);
				if(text=="true"){
				flag = true; //可以提交表单
				document.getElementById("msg").innerHTML = "<font color='green'>恭喜您,该用户名可用!</font>";
				}else{
				 flag = false;//不可以提交表单
				document.getElementById("msg").innerHTML = "<font color='red'>该用户名已被使用,请您重新选择用户名!</font>";
				}
			} else {
				alert("status is " + request.status);
			}
		}

	}
	function checkForm(){   // 对表单判断能否进行提交操作  
        return flag;  
    }  
</script>
  </head>
  
  <body>
   <form action="" method="post" onsubmit="">
   <input type="text" id="userName" name="user.name" onblur="getCustomerInfo()"><span id="msg"></span>
   <input type="submit" value="注册">  
   <input type="reset" value="重置">  
   </form>
  </body>
</html>

action.jsp 

   @Action(
    		value="loginActionloginTest"
    		)
    public void loginTest() throws IOException{
    	try {
			String str= new String(user.getUserName().toString().getBytes("iso8859-1"), "utf-8");
    		//String str= java.net.URLDecoder.decode(user.getUserName(), "UTF-8");
			System.out.println("asasasasasasas"+str);
	    	User usern = loginService.find(str);
	    	System.out.println("asasasasasasas"+usern);
	    	response=(HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
	    	PrintWriter out = response.getWriter();
	    	if(usern==null){
	    		
	    		out.print("true");
	    	}else{
	    		out.print("false");
	    	}
	    	out.flush();
	    	out.close();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值