JQuery的第一天实战学习

1、按照下面的工程来建:

2、新建UserVerify.html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>jquery实战</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <link type="text/css" rel="stylesheet" href="css/UserVerify.css"/>
        <script type="text/javascript" src="js/jquery-1.11.3.js" ></script>
        <script type="text/javascript" src="js/UserVerify.js" ></script>
    </head>

    <body>
        <table>
            <tr>
                <td>
                    请输入用户名称:
                </td>
                <td>
                    <input type="text" id="userName" />
                </td>
                <td>
                    <div id="verifyResult"></div>
                </td>
            </tr>
            <tr>
                <td></td>
                <td></td>
                <td><input type="button" value="校验" id="verifyButton" /></td>
            </tr>
        </table>
    </body>
</html>

3、新建css/UserVerify.css文件

.nameClass{
    /*控制文本框的边框是红色的实线*/
    border:1px solid red;
    background-image:url(../images/userVerify.gif);
    background-repeat:repeat-x;
    background-position:bottom;
}

4、新建js/UserVerify.js文件

/*
 *需要通过javascript代码来做2件事情:
 *1、button被点击的时候,需要将文本框中的数据获取到,然后发送给服务器端,最后接受服务器返回的数据,填充到div中,看到结果;
 *2、文本框上,用户按键后,需要判断文本框中的内容是否为空,否,红色的边框和背景图取消,是,则留
 */

 /*
  *
  */
 $(document).ready(function(){

     //页面装载完,执行以下代码:

     //需要找到button按钮,注册事件
     $("#verifyButton").click(function(){
         //alert("Button click");
         //1、获取文本框的内容;
         var userName = $("#userName").val();
         //2、将这个内容发送给服务器端
         if(userName == "")
         {
            alert("用户姓名不能为空");
         }
         else
         {
             //alert(userName);
             try
             {
                 $.get("http://localhost:8080/150702JQuery/userVerify?userName="+encodeURI(encodeURI(userName)),null,function(response){
                     //3、接受服务器端返回的数据,填充到div中
                     $("#verifyResult").html(response);
                 });
             }
             catch(e)
             {
                 alert(e.error);
                 alert(e.message);
             }
         }

     });

     //需要找到文本框,注册事件
     $("#userName").keyup(function(){
         var userName = $(this).val();
         if(userName == "")
         {
             $(this).addClass("nameClass");
         }
         else
         {
             $(this).removeClass("nameClass");
         }
     });

 });

5、添加额外的文件:

images/userVerify.gif

以上实现的样式如下图所示:

1)刚打开的样式:

2)输值却为空,则会改变文本框的样式:

6、新建UserVerifyServlet.java类:

package com.jquery.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserVerifyServlet extends HttpServlet{

    private static final long serialVersionUID = 2348662049635889701L;

    public void init()
    {
        System.out.println("init UserVerifyServlet");
    }
    public void service(HttpServletRequest request,HttpServletResponse response)
    {
        String userName = (String)request.getParameter("userName");

        try
        {
            userName = URLDecoder.decode(userName,"UTF-8");
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            out.println("用户姓名【"+userName+"】可以注册");
        }
        catch (UnsupportedEncodingException e1)
        {
            e1.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }

}

7、在web.xml文件里增加:

<servlet>
        <servlet-name>userVerify</servlet-name>
        <servlet-class>com.jquery.servlet.UserVerifyServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>userVerify</servlet-name>
        <url-pattern>/userVerify</url-pattern>
    </servlet-mapping>

增加servlet类后,实现:

输入值后,点击校验按钮,通过ajax访问服务器端,返回数据页面div里展示:

时间: 2024-08-27 15:23:48

JQuery的第一天实战学习的相关文章

jquery Mobile应用第2课《构建跨平台APP:jQuery Mobile移动应用实战》连载二(简单的QWER键盘)

在jQuery Mobile的布局中,控件大多都是单独占据页面中的一行,按钮自然也不例外,但是仍然有一些方法能够让多个按钮组成一行,比如说在范例6-5中就利用按钮分组的方法使4个按钮并列在一行中,如图6-24和图6-25所示. 图6-24 实现按钮分组的方法 图6-25 分组的按钮 而在上一节中也许有读者已经注意到,头部栏中的按钮并没有占据一整行,也没有与多个按钮一起成组存在,那么在页面的其他部分是否也可以让按钮以这样的形式出现呢? [范例6-9 简单的QWER键盘] 01 <!DOCTYPE

Docker虚拟化实战学习——基础篇(转)

Docker虚拟化实战学习--基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker Docker虚拟化实战和企业案例演练 深入剖析虚拟化技术概念和应用场景 虚拟化,一是项技术--,是一种资源解决方案. 虚拟化技术是将物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒,使计算元件运行在虚拟的基础上,而不是真实的物理资源上. 通过虚拟化技术,可以将物理资源转变为逻辑资源(虚拟机),应用程序服务运行在虚拟资源上,而不是真实的物理机上.

W3cschool编程实战学习HTML5&amp;CSS实战简介《一》

上周感兴趣想学习一下HTML基础入门.(虽然可能和自己就业没多大关系,但是多了解一点总没坏处.)我在W3cshool上学习编程实战学习中HTML5&CSS的课程,由于平时比较忙,我只能每天晚上抽半个小时做题,本周末又恰逢研究生考试现场确认,因此,目前只写了前面一部分.后续会继续更新. html简单示例分析 <!DOCTYPE html> <html> <body> <h1>我是第一个标题</h1> <p>我是第一个段落.<

小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给button加图标)

在范例5-4所使用的导航栏中,已经为button增加了图标的样式,可是当时并没有介绍button的图标到底是怎么一回事.以下截取范例5-4中导航栏部分的代码: <divdata-role="footer"> <div data-role="navbar"data-grid="c"> <ul> <li><a id="chat" href="#"data-i

osgi实战学习之路:8. Service-3之ServiceTracker

通过ServiceTracker可以对查找的Service进行扩展 下面的demo引入装饰器模式对Service进行日志的扩展 demo: Provider student-manage/Activator.java package com.demo.service; import java.util.Dictionary; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import org

osgi实战学习之路:5.生命周期及利用命令、装饰者模式实现基于socket交互Bundle命令demo

生命周期中关键3个类: BundleActivator 入口点,类似main方法 BundleContext Bundle上下文对象,在运行期间,为应用程序提供操作osgi框架的方法 Bundle 代表一个已安装的Bundle 接口说明: BundleActivator: public interface BundleActivator { public void start(BundleContext context) throws Exception; public void stop(Bu

osgi实战学习之路:6. Service-1

什么是Service? 它是注册到osgi的一个java对象 Service注册: 通过BundleContext::registerService(java.lang.String[] clazzes, java.lang.Object service, java.util.Dictionary properties)  Service查找及使用: 通过BundleContext::getServiceReference(java.lang.String clazz),返回ServiceRef

机器学习实战学习笔记(一)

1.k-近邻算法 算法原理: 存在一个样本数据集(训练样本集),并且我们知道样本集中的每个数据与其所属分类的对应关系.输入未知类别的数据后将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似(最近邻)的k组数据.然后将k组数据中出现次数最多的分类,来作为新数据的分类. 算法步骤: 计算已知类别数据集中的每一个点与当前点之前的距离.(相似度度量) 按照距离递增次序排序 选取与当前点距离最小的k个点 确定k个点所在类别的出现频率 返回频率最高的类别作为当前点的分类 py

osgi实战学习之路:7. Service-2之ServiceListener

ServiceListener三种状态: ServiceEvent.REGISTERED ServiceEvent.MODIFIED ServiceEvent.UNREGISTERING 基于ServiceListener实现服务查找的demo Provider student-manage/Activator.java package com.demo.service; import java.util.Dictionary; import java.util.HashMap; import