基于Ajax的输入校验

“AJAX校验用户名是否存在”小例子源码(JQuery+Servlet实现).rar 一个非常简单的AJAX小例子 ——“AJAX校验用户名是否存在”技术使用:JQuery+Servlet实现 立即下载

    Ajax的输入校验不是客户端校验,而是服务器端校验,但这种服务器端校验是以异步方式进行的,浏览者无需显示提交请求,系统自动完成校验。
  Struts2的Ajax校验建立在DWR和Dojo两个框架之上,其中DWR负责实现在JavaScript中调用远程方法,而Dojo则负责
页面效果的实现。
  DWR是Java领域的Ajax框架,它允许客户端JavaScript代码直接调用服务器端的Java方法,这个过程是通过一个核心Servlet的转换来实现的。为了让DWR的核心Servlet起作用,必须在web.xml文件中配置该核心Servlet。
如下:

Java代码

  1. <servlet>    
  2.   <servlet-name>dwr</servlet-name>    
  3.   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>    
  4.   <init-param>    
  5.    <param-name>debug</param-name>    
  6.    <param-value>true</param-value>    
  7.   </init-param>    
  8. </servlet>    
  9. <servlet-mapping>    
  10.   <servlet-name>dwr</servlet-name>    
  11.   <url-pattern>/dwr/*</url-pattern>    
  12. </servlet-mapping>   

<servlet>

  <servlet-name>dwr</servlet-name>

  <servlet-class>uk.ltd.getahead.dwr.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>


在上面的配置文件中增加了DWR的核心Servlet后,该Servlet负责将服务器端的Java方法暴露出来。具体哪些方法需要被暴露出来,可以通过在dwr.xml文件中指定。(dwr.xml文件应放在WEB-INF路径下)

Java代码

  1. dwr.xml文件:    
  2. <!DOCTYPE dwr PUBLIC    
  3. "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"    
  4. "http://www.getahead.ltd.uk/dwr/dwr10.dtd">    
  5. <dwr>    
  6. <allow>    
  7.   <create creator="new" javascript="validator" >    
  8.    <param name="class" value="org.apache.struts2.validators.DWRValidator" />    
  9.   </create>    
  10.   <convert converter="bean" match="com.opensymphony.xwork2.ValidationAwareSupport" />    
  11. </allow>    
  12. <signatures>    
  13.   <![CDATA[    
  14.   import java.util.Map;    
  15.   import org.apache.struts2.validators.DWRValidator;    
  16.   DWRValidator.doPost(String,String,Map<String,String>);    
  17.   ]]>    
  18. </signatures>    
  19. </dwr>   

dwr.xml文件:

<!DOCTYPE dwr PUBLIC

"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"

"http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>

<allow>

  <create creator="new" javascript="validator" >

   <param name="class" value="org.apache.struts2.validators.DWRValidator" />

  </create>

  <convert converter="bean" match="com.opensymphony.xwork2.ValidationAwareSupport" />

</allow>

<signatures>

  <![CDATA[

  import java.util.Map;

  import org.apache.struts2.validators.DWRValidator;

  DWRValidator.doPost(String,String,Map<String,String>);

  ]]>

</signatures>

</dwr>


为了使用Ajax表单,必须使用<s:head theme="ajax" />标签来导入Ajax头。

Java代码

  1. regist.jsp文件:    
  2. <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>    
  3. <%@ taglib prefix="s" uri="/struts-tags" %>    
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    
  5. <html>    
  6.   <head>    
  7.     <title>regist</title>    
  8. <s:head theme="ajax" />    
  9.   </head>    
  10.   <body>    
  11.     <H1>请输入您的注册信息</H1>    
  12.     <s:form action="regist" theme="ajax" validate="true" >    
  13.     <s:textfield name="name" label="姓名"  />    
  14.     <s:textfield name="pass" label="密码"  />    
  15.     <s:textfield name="age" label="年龄"  />    
  16.     <s:textfield name="birth" label="生日"  />    
  17.     <s:submit value="注册" targets="show"/>    
  18.     </s:form>    
  19.     <div id="show"></div>    
  20.   </body>    
  21. </html>   

regist.jsp文件:

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>regist</title>

<s:head theme="ajax" />

  </head>

  <body>

    <H1>请输入您的注册信息</H1>

    <s:form action="regist" theme="ajax" validate="true" >

    <s:textfield name="name" label="姓名"  />

    <s:textfield name="pass" label="密码"  />

    <s:textfield name="age" label="年龄"  />

    <s:textfield name="birth" label="生日"  />

    <s:submit value="注册" targets="show"/>

    </s:form>

    <div id="show"></div>

  </body>

</html>

 

Java代码

  1. RegistAction.java文件    
  2. package com.pracbiz.struts2AjaxDemo.action;    
  3. import java.util.Date;    
  4. import com.opensymphony.xwork2.ActionSupport;    
  5. public class RegistAction extends ActionSupport {    
  6. private static final long serialVersionUID = -802101249451189323L;    
  7. private String name;    
  8. private String pass;    
  9. private int age;    
  10. private Date birth;    
  11. public String getName() {    
  12.   return name;    
  13. }    
  14. public void setName(String name) {    
  15.   this.name = name;    
  16. }    
  17. public String getPass() {    
  18.   return pass;    
  19. }    
  20. public void setPass(String pass) {    
  21.   this.pass = pass;    
  22. }    
  23. public int getAge() {    
  24.   return age;    
  25. }    
  26. public void setAge(int age) {    
  27.   this.age = age;    
  28. }    
  29. public Date getBirth() {    
  30.   return birth;    
  31. }    
  32. public void setBirth(Date birth) {    
  33.   this.birth = birth;    
  34. }    
  35. }   

RegistAction.java文件

package com.pracbiz.struts2AjaxDemo.action;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class RegistAction extends ActionSupport {

private static final long serialVersionUID = -802101249451189323L;

private String name;

private String pass;

private int age;

private Date birth;

public String getName() {

  return name;

}

public void setName(String name) {

  this.name = name;

}

public String getPass() {

  return pass;

}

public void setPass(String pass) {

  this.pass = pass;

}

public int getAge() {

  return age;

}

public void setAge(int age) {

  this.age = age;

}

public Date getBirth() {

  return birth;

}

public void setBirth(Date birth) {

  this.birth = birth;

}

}


尽理不要重写action类的validate方法

Java代码

  1. RegistAction-validation.xml文件    
  2. <?xml version="1.0" encoding="UTF-8"?>    
  3. <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">    
  4. <validators>    
  5.     <!-- Field-Validator Syntax -->    
  6.     <field name="name">    
  7.         <field-validator type="requiredstring">    
  8.          <param name="trim">true</param>    
  9.             <message>必须输入名字.</message>    
  10.         </field-validator>    
  11.     </field>    
  12.     <field name="pass">    
  13.         <field-validator type="requiredstring">    
  14.             <param name="trim">true</param>    
  15.             <message>必须输入密码.</message>    
  16.         </field-validator>    
  17.     </field>    
  18.     <field name="age">    
  19.         <field-validator type="int">    
  20.          <param name="min">1</param>    
  21.          <param name="max">120</param>    
  22.             <message>年龄必须在${min}到${max}之间.</message>    
  23.         </field-validator>    
  24.     </field>    
  25.     <field name="birth">    
  26.       <field-validator type="required">    
  27.             <message>必须输入生日.</message>    
  28.         </field-validator>    
  29.         <field-validator type="date">    
  30.          <param name="min">1900-01-01</param>    
  31.          <param name="max">2050-02-21</param>    
  32.             <message>生日必须在${min}到${max}之间.</message>    
  33.         </field-validator>    
  34.     </field>    
  35. </validators>   

RegistAction-validation.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">

<validators>

    <!-- Field-Validator Syntax -->

    <field name="name">

        <field-validator type="requiredstring">

         <param name="trim">true</param>

            <message>必须输入名字.</message>

        </field-validator>

    </field>

    <field name="pass">

        <field-validator type="requiredstring">

            <param name="trim">true</param>

            <message>必须输入密码.</message>

        </field-validator>

    </field>

    <field name="age">

        <field-validator type="int">

         <param name="min">1</param>

         <param name="max">120</param>

            <message>年龄必须在${min}到${max}之间.</message>

        </field-validator>

    </field>

    <field name="birth">

      <field-validator type="required">

            <message>必须输入生日.</message>

        </field-validator>

        <field-validator type="date">

         <param name="min">1900-01-01</param>

         <param name="max">2050-02-21</param>

            <message>生日必须在${min}到${max}之间.</message>

        </field-validator>

    </field>

</validators>

 

Java代码

  1. struts.xml文件    
  2. <?xml version="1.0" encoding="UTF-8" ?>    
  3. <!DOCTYPE struts PUBLIC    
  4.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
  5.     "http://struts.apache.org/dtds/struts-2.0.dtd">    
  6. <struts>    
  7. <constant name="struts.i18n.encoding" value="UTF-8" />    
  8. <package name="com" extends="struts-default">    
  9.   <action name="regist" class="com.pracbiz.struts2AjaxDemo.action.RegistAction">    
  10.    <result>/welcome.jsp</result>    
  11.   </action>    
  12. </package>    
  13. </struts>   

struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.i18n.encoding" value="UTF-8" />

<package name="com" extends="struts-default">

  <action name="regist" class="com.pracbiz.struts2AjaxDemo.action.RegistAction">

   <result>/welcome.jsp</result>

  </action>

</package>

</struts>

 

Java代码

  1. welcome.jsp文件    
  2. <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>    
  3. <%@ taglib prefix="s" uri="/struts-tags" %>    
  4. <html>    
  5.   <head>    
  6.     <title>My JSP 'welcome.jsp' starting page</title>    
  7.   </head>    
  8.   <body>    
  9.     here is your information:<br>    
  10.     <s:property value="name" /><br>    
  11.     <s:property value="pass" /><br>    
  12.     <s:property value="age"  /><br>    
  13.     <s:property value="birth"   />    
  14.   </body>    
  15. </html>  
基于STM32设计的遥控小车(手机APP+GPS+温湿度+ESP8266) 一、环境介绍 小车主控MCU: STM32F103ZET6 STM32程序开发IDE: keil5 STM32程序风格: 采用寄存器方式开发,注释齐全,执行效率高,方便移植 手机APP: 采用QT设计,程序支持跨平台编译运行(Android、IOS、Windows、Linux都可以编译运行,对应平台上QT的环境搭建,之前博客已经发了文章讲解) 硬件包含: 淘宝购买的完整一套4轮遥控小车(采用STM32F103ZET6作为主控板)、DHT11温湿度传感器、中科微GPS模块、ESP8266 ... 阅读详情

相关推荐

基于JavaEE的银行大客户关系维护系统(JSP+java+springmvc+mysql+MyBatis)

基于JavaEE技术的大型银行客户关系管理系统可以实现客户信息的集中管理、客户需求的分析与挖掘、个性化的服务推荐等功能。+ Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。用户发送请求:用户通过浏览器或其他客户端向系统发送请求,请求访问特定的页面或执行特定的操作。前端展示结果:前端接收到后端返回的数据,根据需要进行展示。数据返回给前端:后端程序处理完业务逻辑后,将结果数据返回给前端。后端程序接收到请求后,根据请求的类型和参数进行相应的处理。

gp1052的博客 719

ajax实现连接数据库,如何用Ajax和数据库连接,实现校验输入值

我是搞java的 所以这里用jsp数据层(sqlserver)在dao中public boolean checklogin(String username,String password){/****具体的数据库驱动和url自己应该能搞定把**/boolean chelogin=false;//用户名不存在则返回false 存在返回true 代码省略return chelogin;}在 UserS...

weixin_39624367的博客 199

线上专利申请(超详细)| 签名确认

在【法人登录】页面点击【证书登录】按钮,弹出证书登录提示框,点击【确 认】按钮,进入到输入证书密码页面,点击【取消】按钮,取消本次操作。企业在提交申请时,需要增加签名,如使用企业账户点击提交,会弹出“法人、代理机构不能签名,请使用经办人签名”,这个时候就需要换个账号了。在需要签名时,将专利官网的登录方式点击法人登录,选择扫码登录,使用移动端经办人账户的扫一扫功能扫描登录。登录完成后,再点击签名,使用移动端扫一扫功能,扫描签名,输入证书号,确认签名,并提交。最后,祝大家的申请都成功!

weixin_62112323的博客 9111

害怕别人乱输数据吗?提高你的数据校验功能-AJAX输入校验(8)

7.4  AJAX输入校验Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而

程序天下:Struts2技术详解(实例版):基于WebWork核心的MVC开发与实践 1714

基于AIS动态数据与AI结合得经纬度标示算法

港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和

qianbo042311的博客 1808

9.9元ESP32-C3开发板实战:手把手教你用VSCode搭建RT-Thread最小系统(附避坑指南)

本文提供了一份详尽的实战指南,教你如何在售价仅9.9元的ESP32-C3开发板上,使用VSCode搭建RT-Thread最小系统。内容涵盖从ESP-IDF环境配置、BSP源码获取、内核补丁应用到编译下载与调试的全流程,并重点分享了版本选择、补丁应用等关键避坑技巧,旨在帮助开发者低成本、高效地启动嵌入式实时操作系统开发。

o4p5q6r7s的博客 226

怎么使用ajax进行校验,jQuery使用$.ajax进行即时验证的方法

本文实例讲述了jQuery使用$.ajax进行即时验证的方法。分享给大家供大家参考,具体如下:使用jQuery和一般处理程序即时验证用户录入的学号是否重复,当光标离开输入框即给出提示。/p>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.clsShow{font-size: 13px;border: solid 1p...

weixin_39781945的博客 346

11. TI MSPM0G3507 DMA传输实战:ADC数据自动搬运与电压采集

本文以TI MSPM0G3507为例,详细讲解了如何利用DMA(直接存储器访问)实现ADC数据的自动搬运与电压采集。通过实战演示,解放CPU资源,提升系统实时性与效率,适用于电赛备赛及嵌入式开发中的数据采集场景。

weixin_42465140的博客 131

转: 数据校验功能-AJAX输入校验(9)中

7.4.2  建立业务控制器 建立一个简单的业务控制器实现类,如代码7.21所示。 代码7.21  AJAX校验示例的业务控制器   package ch7;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class Reg_ajax_Action extends...

serenity的技术笔记 149

旋转因子量化仿真

在单bit接收机中,通过量化FFT核函数来简化计算,将复数坐标中旋转因子单位圆上的点近似到正方形四个边上,就能够用累加实现复数乘法,从而避免使用DSP乘法器。通过仿真查看不同阶的核函数简化效果。

CyberInversion的博客 3103

psasp和matlab,PSASP与Matlab/SimPowerSystems联合仿真接口方法研究

[1]李亚楼,吴中习.Matlab模型接入PSASP暂态稳定计算模块的方法[J].电网技术,2008,32(19):31-36.Li Yalou,Wu Zhongxi.An Approach to Interface Matlab Model with PSASP Transient Stability Module [J].Power System Technology,2008,32(19):...

weixin_39636245的博客 1082

用ajax判断输入框输入内容是否符合要求

用ajax实现 一、get方式 html文件 Document function check(){ var xhr = new XMLHttpRequest(); var userName = document.getElementById("userName").value;  //获取需要判断的输入框的值 userName = encodeURICom

淡蓝海的博客 4178

ComfyUI整合包V8中文版最新版介绍

和普通AI绘图网页不同,它把图像生成的每一个步骤拆分成一个个"节点",用连线把它们串起来,形成工作流。里面包含ComfyUI内核、Python运行环境、常用插件、部分预置模型,还有一个叫"绘世启动器"的图形界面管理工具。网上的对比数据显示,WebUI最低需要4G显存,ComfyUI最低3G显存就能运行。可以在里面管理插件、切换模型路径、设置显存模式、查看日志报错,还有"疑难解答"功能,遇到报错可以先扫描一下看是不是已知问题。原版ComfyUI的界面是英文的,右键菜单、节点名称全是英文。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 5225

数据校验功能-AJAX输入校验(9)

7.4  AJAX输入校验Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而

Write One,Run Everywhere 1894

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Struts2的Ajax输入校验

    这段时间在研究Struts2,学习资料是新上市的李刚著的《Struts2权威指南》,很不错的一本书,看了觉得收获很大。刚研究完Struts2中的Ajax输入校验,并做了一些例子,现总结如下:    Ajax的输入校验不是客户端校验,而是服务器端校验,但这种服务器端校验是以异步方式进行的,浏览者无需显示提交请求,当浏览者输入完成后,系统自动完成校验。Struts2的Ajax校验建立在DW

vigalar的专栏 1407

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

转: 数据校验功能-AJAX输入校验(9)上

7.4  AJAX输入校验 Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。 AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息...

serenity的技术笔记 144

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

转: 数据校验功能-AJAX输入校验(9)下

7.4.4  建立JSP视图 建立一个reg-ajax.jsp视图文件,如代码7.23所示。 代码7.23  AJAX校验示例的JSP视图   &lt;%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;&lt;%@ taglib prefix="s" uri="/struts-tag...

serenity的技术笔记 170

基于struts2和DWR的Ajax输入校验

Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。         AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而不是所有表单填

江南渔翁-孤独的垂钓者 698

servlet + ajax 简单实例(实现输入校验)

Ajax AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 首先我们给出jsp页面 &amp;lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot; language=&quot;java&quot; %&amp;gt...

无名才怪 2611

Ajax---后台校验用户输入的数据

Ajax----校验用户输入的数据 index.jsp     Ajax技术演示         //把name提交到后台校验;看是否可用     function chacke1(obj){     var name=obj.value;       //创建一个Ajax       var xhr=null;//XMLHttpRequest        if(wind

ZHL_blog 753

ext js ajax表单校验,Extjs表单输入框异步校验的插件实现方法

一、效果如图所示特点:1、异步后台校验不会对用户操作产生阻塞感;2、可在用户停止输入后自动校验,避免频繁进行无谓的后台校验;3、以插件方式实现,方便使用;二、插件源码如下:/*** Created by jiawenjun on 2016/10/19.*/Ext.define('Ext.ux.plugins.FieldAjaxVerify',{extend: 'Ext.AbstractPlugin...

weixin_36087586的博客 316

ajax 对输入文本是否合法进行校验

var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dateISO: “请输入合法的日期 (ISO).”, number: “请输入合法的数字”, digits: “只能输入整数”, creditcard: “请输入合法的信用卡号”,...

shixiansen6535的博客 622

Ajax验证邮箱是否合法,ajax 对输入文本是否合法进行校验

var cnmsg = {required: “必选字段”,remote: “请修正该字段”,email: “请输入正确格式的电子邮件”,url: “请输入合法的网址”,date: “请输入合法的日期”,dateISO: “请输入合法的日期 (ISO).”,number: “请输入合法的数字”,digits: “只能输入整数”,creditcard: “请输入合法的信用卡号”,equalTo: “...

weixin_39525300的博客 275
上一篇: 找出最耗资源的sql
下一篇: Java生成条形码
caok
博客等级 码龄22年 88粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值