`

[code]表单验证_1.用js在客户端验证

阅读更多
1.用js在客户端验证

goodsPublish.jsp页面
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%   
    String path = request.getContextPath();   
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()   
            + path + "/";   
%> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>发布商品</title>

<link rel="stylesheet" type="text/css" href="<%=basePath%>css/mobile.css">

<script language="javascript" type="text/javascript">
var xmlHttp;    
// 创建xmlHttp;    
function createXMLHttpRequest(){    
    if(window.ActiveXObject){    
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");    
    }else if(window.XMLHttpRequest){    
        xmlHttp = new XMLHttpRequest();    
    }    
}    
   
// 删除城市选项    
function clearType2List(){    
    var type2 = document.getElementById("type2");    
    while(type2.childNodes.length > 0){    
        type2.removeChild(type2.childNodes[0]);    
    }    
}    
   
//选项省份时    
function selectType1(){    
    var type1 = document.getElementById("type1").value;//获取省份值    
    //alert(type1);  
    if(type1 == ""){ //如果为空,则清空城市选项    
        clearType2List();    
        clearType3List();
        
        var type2Select = document.getElementById("type2"); //获取城市select组件    
        var option = document.createElement("option");    
        option.appendChild(document.createTextNode("请选择分类2"));    
        type2Select.appendChild(option);
           
        
        
        return ; //返回    
    }    
   
	//不乱码3
	//type1 = escape(escape(type1)); 
	url="<%=basePath%>servlet/GetTypebyId?parentid=" + type1 + "&id="+Math.random(); 
	//alert(url);
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	//不乱码3
}    
   
//回调函数    
function handleStateChange(){    
    if(xmlHttp.readyState == 4){    
        if(xmlHttp.status == 200){    
            updateType2List();    
        }    
    }    
}    
   
//页面更新城市集合函数    
function updateType2List(){    
    clearType2List();//首先删除先前的城市选项    
    var type2Select = document.getElementById("type2"); //获取城市select组件    
    var results = xmlHttp.responseXML.getElementsByTagName("type");//获取Ajax返回的结果,city为返回的XML里的节点       
    var option = document.createElement("option");    
    option.appendChild(document.createTextNode("请选择分类2"));    
    type2Select.appendChild(option);
    
    for(var i=0; i<results.length; i++){            
        option = document.createElement("option");  
        option.setAttribute("value",results[i].getAttribute("value")); 
        option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));    
        type2Select.appendChild(option);    
    }  
    //alert(type2Select.childNodes[0].getAttribute("value"));
    //查看值是否正确
}     

/////////////

// 删除城市选项    
function clearType3List(){    
    var type3 = document.getElementById("type3");    
    while(type3.childNodes.length > 0){    
        type3.removeChild(type3.childNodes[0]);    
    }    
}    
   
//选项省份时    
function selectType2(){    
    var type2 = document.getElementById("type2").value;//获取省份值    
    //alert(type1);  
    if(type2 == ""){ //如果为空,则清空城市选项    
        clearType3List();    
        var type3Select = document.getElementById("type3"); //获取城市select组件    
        var option = document.createElement("option");    
        option.appendChild(document.createTextNode("请选择分类3"));    
        type3Select.appendChild(option);    
        return ; //返回    
    }    
   
	//不乱码3
	//type1 = escape(escape(type1)); 
	url="<%=basePath%>servlet/GetTypebyId?parentid=" + type2 + "&id="+Math.random(); 
	//alert(url);
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = handleStateChange2;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	//不乱码3
}    
   
//回调函数    
function handleStateChange2(){    
    if(xmlHttp.readyState == 4){    
        if(xmlHttp.status == 200){    
            updateType3List();    
        }    
    }    
}    
   
//页面更新城市集合函数    
function updateType3List(){    
    clearType3List();//首先删除先前的城市选项    
    var type3Select = document.getElementById("type3"); //获取城市select组件    
    var results = xmlHttp.responseXML.getElementsByTagName("type");//获取Ajax返回的结果,city为返回的XML里的节点    
    var option = null;    
    for(var i=0; i<results.length; i++){            
        option = document.createElement("option");  
        option.setAttribute("value",results[i].getAttribute("value")); 
        option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));    
        type3Select.appendChild(option);    
    }  
    //alert(type2Select.childNodes[0].getAttribute("value"));
    //查看值是否正确
}          
      
</script>  


<script language="javascript" type="text/javascript">

 //验证非空函数
 function checkNull(str,element)
 {
 	if(element.value==""){
      alert(str+"不能为空");
      element.focus();
      return false;
    }
    return true;
 }
 
 //验证长度函数
 function checkLength(str,num,element)
 {
    if(element.value.length>=num)
    {
       alert(str+"长度不能超过"+num+"位");
       element.focus();
       return false;
    }
    return true;
 }
 
 //验证非法字符函数
 function checkFeiFa(str,element)
 {
    
    var ve =/[@#\$%\^&\*]+/g;  //@#$%^&*这些字符为非法
    if(ve.test(element.value)){
     element.focus();
     alert(str+"含有非法字符@#$%^&*!");
      return false;
    }
    return true;
 }
 
 //验证为整数函数
 function checkInt(str,element)
 {
 	var ve= /^[1-9][0-9]*$/;
 	 if(!ve.test(element.value)){
     element.focus();
     alert(str+"必须为整数!");
      return false;
    }
    return true;
 }
 
 //验证价格函数
 function checkPrice(str,element)
 {
     var re = /^[1-9][0-9]*$|^[0-9].[0-9]+$/;
     if(!re.test(element.value)){
     element.focus();
     alert(str+"格式出错!");
      return false;
    }
    return true;
 }
 
 //验证为图片格式.jpg,.gif,.bmp格式
 function checkPic(element)
 {
  	 if(element.value.toLowerCase().indexOf(".jpg")<0&&element.value.toLowerCase().indexOf(".gif")<0&&element.value.toLowerCase().indexOf(".bmp")<0){
      alert("只能上传.jpg,.gif,.bmp格式的图片!");
      return false;
    }
    return true;
 }
 
 //验证标题
 function checkTitle(str,num,element)
 {
   if(!checkNull(str,element))
   {
   return false;
   }
   if(!checkLength(str,num,element))
   {
   return false;
   }
   if(!checkFeiFa(str,element))
   {
   return false;
   }
   return true;
 }
 
 //验证商品数量
 function checkGoodsnum(str,num,element)
 {
    if(!checkNull(str,element))
    {
    return false;
    }
    if(!checkInt(str,element))
    {
    return false;
    }
    if(!checkLength(str,num,element))
    {
    return false;
    }
    return true;
 }
 
 //验证价格
 function checkEms(str,element)
 {
 	if(!checkPrice(str,element))
    {
    return false;
    }
    return true;
 }
 
 //验证图片
 function checkImage(str,element)
 {
 	if(!checkNull(str,element))
    {
    return false;
    }
    if(!checkPic(element))
    {
    return false;
    }
    return true;
 }
 
 //被调用的验证函数
 function check(){
    var title = document.getElementById("title");
    var price = document.getElementById("price"); 
    var goodsnum = document.getElementById("goodsnum");
    var image = document.getElementById("image");
    var ems = document.getElementById("ems");
    var py = document.getElementById("py");
    var kd = document.getElementById("kd");
      
   
    if(!checkTitle("商品名称",20,title))
    {
    return false;
    }
    if(!checkGoodsnum("商品数量",7,goodsnum))
    {
    return false;
    }
    if(!checkEms("价格格式",ems))
    {
    return false;
    }
    if(!checkImage("图片",image))
    {
    return false;
    }
    return true;
      
  }
  </script>
</head>

 

<body>

	<jsp:include page="/include/headm.jsp" flush="true" />
	
	<div id="container">
		
		<jsp:include page="/include/leftm.jsp" flush="true" />
		
		<div id="rightside" >
			
			<div class="margin5 border1">
			<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="<%=basePath%>servlet/GoodsPublish" onsubmit="return check();">
			  <input type="hidden" name="shopid" value="<%=request.getParameter("shopid")%>" />
			  <label for="title">商品名称:</label>
			  <input type="text" name="title" id="title" />
			  <br/>
			  <label for="info">商品简介:</label>
			  <input type="text" name="info" id="info" />
			  <br/>
			  <label for="price">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;价格:</label>
			  <input type="text" name="price" id="price" />
			  <br/>
			  <label for="ems">配送价格:</label>
			  <input type="text" name="ems" id="ems" />
			  <br/>
			  <label for="py">平邮价格:</label>
			  <input type="text" name="py" id="py" />
			  <br/>
			  <label for="kd">快递价格:</label>
			  <input type="text" name="kd" id="kd" />
			  <br/>
			  <label for="goodsnum">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数量:</label>
			  <input type="text" name="goodsnum" id="goodsnum" />
			  <br/>
			  <label for="goodsnum">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图片:</label>
			  <input type="file" name="image" id="image" />
			  <br/>
			  
			   <label for="type1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分类1:</label>
			   <select name="type1" id="type1" onchange="selectType1();">
			    <option>请选择分类1</option>
				<c:forEach items="${sessionScope['type1list']}" var="item">
				<option value="<c:out value="${item.id}"/>"><c:out value="${item.name}"/></option>
				</c:forEach>
				</select>
			   <label for="type2">分类2:</label>
				  <select name="type2" id="type2" onchange="selectType2();">
				    <option>请选择分类2</option>
				  </select>
			   <label for="type3">分类3:</label>
			   	  <select name="type3" id="type3">
				    <option>请选择分类3</option>
				  </select>
			  <br/>
			  <label for="Submit"></label>
			  <input type="submit" name="Submit" value="提交" id="Submit" />
			  <label for="label"></label>
			  <input type="reset" name="Reset" value="重置" id="label" />
			  <br/>
			</form>
			</div>
			
		</div>
		
	</div>
	
	<jsp:include page="/include/footm.jsp" flush="true" />
	
	
</body>
</html>


1.不能为空
2.长度不超过20位
3.含非法字符@#$%^&*
4.必须是整数
5.价格格式
6.图片限制格式

regedit.jsp页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%   
    String path = request.getContextPath();   
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()   
            + path + "/";   
%> 
<%
response.setHeader("Pragma", "No-cache"); 
response.setDateHeader("Expires", 0); 
response.setHeader("Cache-Control", "no-cache");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>注册页面</title>
<script type="text/javascript" src="js/jquery.js"></script>
<style type="text/css">
<!--
body {
	margin-left: 10px;
	margin-top: 10px;
	margin-right: 0px;
	margin-bottom: 0px;
}
form{
font-family:"Times New Roman", Times, serif;
font-size:12px;
color:#666666;
}
-->
</style>
<style type="text/css">
.code{
background-image:url(image/code.jpg);
font-family:Arial;
font-style:italic;
color:Red;
border:0;
padding:2px 3px;
letter-spacing:3px;
font-weight:bolder;
}
.unchanged {
border:0;
}
</style>
<link rel="stylesheet" type="text/css" href="css/mobile.css">


<script language="javascript" type="text/javascript">


  //不含中文
  function checkNoCn(str,element)
  {
    var re = /.*[\u4e00-\u9fa5]+.*$/;
    if(re.test(element.value)) 
		{ 
		alert(str+"不能含有中文!"); 
		element.focus();
		return false; 
		} 
	return true;
  }
  
  //长度范围num1>num2
  function checkLengths(num1,num2,str,element)
  {
  	if(element.value.length>=num1 || element.value.length<num2)
  	{
      alert(str+"长度出错");
      element.focus();
      return false;
    }
    return true;
  }
  
  //两次密码是否相同
  function checkSame(str,element1,element2)
  {
  	if(element1.value!=element2.value)
  	{
  		alert("两次"+str+"不相同");
  		element2.focus();
  		return false;
  	}
  	return true;
  }
  
  //手机 13X,158,159,11位的
  function checkMobile(element)
  {
    var re = /^13\d{9}|15[8,9]\d{8}$/g;
  	if(!re.test(element.value))
  	{
     	 alert("手机号码输入有误!");
         return false;
    }
    return true;
  }
  
  //邮箱  X@X.com
  function checkEmail(element)
  {
  	var re = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
  	if(!re.test(element.value)) 
	{ 
	alert("邮箱格式不正确!"); 
	element.focus();
	return false; 
	} 
	return true;
  }
  
  //用户名
  function checkUsername(num1,num2,str,element)
  {
  	if(!checkNoCn(str,element))
  	{
  	return false;
  	}
  	if(!checkLengths(num1,num2,str,element))
  	{
  	return false;
  	}
  	return true;
  	
  }
  
  //密码
  function checkPassword2(str,element1,element2)
  {
  	if(!checkSame(str,element1,element2))
  	{
  		return false;
  	}
  	return true;
  }
  
  //手机
  function checkMob(element)
  {
  	if(!checkMobile(element))
  	{
  	return false;
  	}
  	return true;
  }
  
  
  function check(){
    var username = document.getElementById("username");
    var password = document.getElementById("password"); 
    var password2 = document.getElementById("password2");
    var mob = document.getElementById("mob");
     var email = document.getElementById("email");
    var certificate = document.getElementById("certificate");
     var person = document.getElementById("person");
    var telno = document.getElementById("telno");
    var address = document.getElementById("address");
    var postno = document.getElementById("postno");
      
   // var inputCode = document.getElementById("input1").value.toUpperCase();
     
    if(!checkUsername(20,5,"用户名",username))
    {
    	return false;
    }
    if(!checkPassword2("密码",password,password2))
    {
    	return false;
    }
    if(!checkMob(mob))
    {
    	return false;
    }
    if(!checkEmail(email))   //邮箱
    {
    	return false;
    }
    
    return true;
     
  }
  </script>

</head>
<body >

	<jsp:include page="include/head.jsp" flush="true" />
	
	<div id="container">
		
		<div>
<form id="form1" name="form1" method="post" action="servlet/RegeditServlet" onsubmit="return check();">
  <label for="username"> 用户名:</label>
  <input type="text" name="username" id="username" />* 5-20位字母、数字或字符组合<span class="STYLE1" style="color: red" id="result"></span>
  <br/>
  <label for="password" >  密码:</label>
  <input type="password" name="password" id="password" size="22"/>* 6-20位字母、数字或字符组合
  <br/>
  <label for="password2">重复密码:</label>
  <input type="password" name="password2" id="password2" size="22"/>*
  <br/>
  <label for="mob">注册手机:</label>
  <input type="text" name="mob" id="mob" />
  <br/>
  <label for="email">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E-mail:</label>
  <input type="text" name="email" id="email" />
  <br/>
  <label for="certificatetype">证件类型:</label>
  <select name="certificatetype" id="certificatetype">
    <option value="身份证">身份证</option>
    <option value="车官证">车官证</option>
    <option value="工商证">工商证</option>
  </select>
  <br/>
  <label for="certificate">&nbsp;&nbsp;&nbsp;&nbsp;证件号:</label>
  <input type="text" name="certificate" id="certificate" />
  <br/>
  <label for="person">&nbsp;&nbsp;&nbsp;&nbsp;联系人:</label>
  <input type="text" name="person" id="person" />
  <br/>
  <label for="sex">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;性别:</label>
  <select name="sex" id="sex">
    <option value="1">男</option>
    <option value="0">女</option>
  </select>
  <br/>
  <label for="telno">联系电话:</label>
  <input type="text" name="telno" id="telno" />
  <br/>
  <label for="address">联系地址:</label>
  <input type="text" name="address" id="address" />
  <br/>
  <label for="postno">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;邮编:</label>
  <input type="text" name="postno" id="postno" />
  <br/>
  <label for="checkno">&nbsp;&nbsp;&nbsp;&nbsp;验证码:</label>
		  <input type="text" name="input1" id="input1" maxlength="4"/>*
		  <input type="text" id="checkCode" class="code" style="width: 55px" readonly="readonly"/> <a href="#" onclick="createCode()">看不清楚</a>
 <br/>
  <input id="choose" type="checkbox" class="radio" checked="checked" />我已阅读并同意<a href="viewAdvice.jsp"
							target="_blank">《XXX通用户协议》</a>
  <br/>						
  <label for="Submit"></label>
  <input type="submit" name="Submit" value="注册" id="Submit" />
  <label for="label"></label>
  <input type="reset" name="Reset" value="重置" id="label" />
  <br/>
</form>
</div>
</div>

	<jsp:include page="include/foot.jsp" flush="true" />
	
</body>
</html>


1.不能含中文
2.长度范围
3.两次密码不相同
4.手机号码格式
5.邮箱格式
分享到:
评论

相关推荐

    什么是mysql安装配置教程以及学习mysql安装配置教程的意义

    mysql安装配置教程

    【光伏预测】基于BP神经网络实现光伏发电功率预测附Matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    onlyoffice搭建及与alist使用的view.html

    onlyoffice搭建及与alist使用的view.html

    android-support-v7-recyclerview 添加错误

    1.Project Structure中添加依赖时,容易添加不进去,所以使用本地添加,将android-support-v7-recyclerview放在对应项目的lib文件中,并add as library。如果在build.gradle中出现implementation files('libs\\android-support-v7-recyclerview.jar')就算是添加成功。 2.在布局文件中使用 androidx 的布局控件,在逻辑代码文件中导入androidx相关包。(取代android.support.v7) 3.在gradle.properties文件中,注释android.enableJetifier=true。(# android.enableJetifier=true) 最新way2:

    3款正射影像DOM导入CASS插件(测试通过).rar

    3款正射影像DOM导入CASS插件(测试通过),带坐标导入,超实用!

    什么是c语言以及学习了解c语言的意义是什么

    c语言

    基于java+MapReduce实现基于物品协同过滤算法,即电影推荐系统+源码+开发文档+算法解析(毕业设计&课程设计&项目开发

    基于java+MapReduce实现基于物品协同过滤算法,即电影推荐系统+源码+开发文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 互联网某电影点评网站,主要产品包括 电影介绍 电影排行 网友对电影打分 网友影评 影讯&购票 用户在看|想看|看过的电影 猜你喜欢(推荐) 利用用户对电影的打分表来给用户推荐电影,用户打分表包括以下字段 userID--用户ID号 itemID--电影ID号 score--评分 ###基于物品的协同过滤算法 建立物品的同现矩阵 建立用户对物品的评分矩阵 矩阵计算推荐结果 ###MapReduce实现 程序流程图 .........

    node-v6.9.3-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    poi-3.9.jar

    javaee/javaweb常用jar包,亲测可用,导入到java工程中即可使用

    netty-transport-native-epoll-4.1.68.Final-linux-x86_64.jar

    javaEE javaweb常用jar包 , 亲测可用,下载后导入到java工程中使用。

    grpcio-1.17.0-cp36-cp36m-linux_armv7l.whl

    Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承

    单例模式(Singleton Pattern)作为创建型模式中的一种,旨在确保一个类在系统中只有一个实例,并提供全局访问点。

    基于matlab实现 powell算法 用matlab实现,使用方法内附详细说明.rar

    基于matlab实现 powell算法 用matlab实现,使用方法内附详细说明.rar

    xpp3_min-1.1.4c.jar

    javaee/javaweb常用jar包,亲测可用,导入到java工程中即可使用

    node-v10.6.0-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Linux系统中常用权限管理命令

    附件是Linux系统中常用权限管理命令,文件格式是markdown,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的! 这些命令是Linux系统中管理文件和目录权限的基础工具。使用这些命令时,需要对权限的表示方法和命令的参数有一定的了解。在执行权限更改操作时,务必谨慎,以避免不必要的安全问题或权限问题。

    netty-resolver-4.1.48.Final.jar

    javaEE javaweb常用jar包 , 亲测可用,下载后导入到java工程中使用。

    telnet出口路由器的实验拓扑

    telnet出口路由器

    Java_android OpenGL的例子.zip

    Java_android OpenGL的例子

    AIR-AP1815-K9-ME-8-5-182-0.zipFor 1815 1830 1840 1850 2700 3700

    AIR-AP1815-K9-ME-8-5-182-0.zip For 1815 1830 1840 1850 2700 3700 加入 AIR-AP1815 的 Mobility Express 管理。

Global site tag (gtag.js) - Google Analytics