官方网站:www.jquery.com
创立者:John Resig
?
请到官方网站下载jquery-1.6.1.min.js
?
?
第一个案例:用户名效验
首先看看我的包目录:
?
大家按照我的包结构把项目建好
?
UserVerify.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> <title>JQuery实战1-用户名校验</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.6.1.min.js"></script> <script type="text/javascript" src="js/userVerify.js"></script> </head> <body> 请输入用户名:<input type="text" id="userName" class="userText"/> <input type="button" value="校验" id="verifyButton" /> <div id="result"></div> </body> </html>
?
?
?userVerify.css
.userText { border: 1px solid red; background-image: url(../images/userVerify.gif); background-repeat: repeat-x; background-position: bottom; }
?
?
userVerify.js
/* * 需要通过Javascript代码来做两件事情 * 1.button被按下的时候,需要将文本框中的数据获取到,然后发送给服务器端,最后接受服务器返回的数据,填充到我们预留的div中,这样用户就可以看到结果 * 2.文本框上,用户按键之后,需要判断文本框中的内容是否为空,如果不为空,红色的边框和背景图就应该取消,否则保留 * */ /* * 需要在页面装载完成是注册上这些工作 * */ $(document).ready(function(){ //这里面的内容就是页面装载完成后需要执行的代码 var userNameNode = $("#userName"); //需要找到button按扭,注册事件 $("#verifyButton").click(function(){ //1.获取文本框的内容 var userName = userNameNode.val(); if(userName == ""){ alert("用户名不能为空"); }else{ //2.将这个内容发送给服务器端 $.get("UserVerify?userName=" + encodeURI(encodeURI(userName)), null,function(data){ //3.接收服务器端返回的数据,填充到div中 $("#result").html(data); }); } }); //需要找到文本框,注册事件 userNameNode.keyup(function(){ //获取当前文本框中的内容 var value = userNameNode.val(); if(value == ""){ //让边框变成红色,并且带背景图 userNameNode.addClass("userText"); }else{ //去掉边框和背景图 userNameNode.removeClass("userText"); } }); });
?
UserVerify.java
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.ascvalue; import java.io.IOException; import java.io.PrintWriter; import java.net.URLDecoder; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author longzhun */ public class UserVerify extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { String param = request.getParameter("userName"); if (param == null || param.length() == 0) { out.println("用户名不能为空"); } else { String userName = URLDecoder.decode(param, "UTF-8"); if (userName.equals("wangxingkui")) { out.println("用户名[" + userName + "]已经存在,请使用别的用户名注册"); } else { out.println("可以使用用户名[" + userName + "]注册"); } } } finally { out.close(); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet"> /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. */ public String getServletInfo() { return "Short description"; }// </editor-fold> }
?
web.xml
?
<servlet> <servlet-name>UserVerify</servlet-name> <servlet-class>com.ascvalue.UserVerify</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserVerify</servlet-name> <url-pattern>/UserVerify</url-pattern> </servlet-mapping>
?
?
按照以上步骤,咱们第一个案例就很快完成了
简单吧
?
下面总结一下第一课学到的知识:
1。可以通过#idname或.classname的方式来个制定的html节点定义样式
2。可以通过$(document).ready(function(){})的方式来定义页面装载完成时,需要执行的方法
3。可以通过$()方法来获得页面的指定节点,参数是某种css的选择器
4。可以在$()方法返回的jquery对象上执行各种Jquery的方法来获取数据,定义事件,执行操作
5。val()方法可以获得节点的value属性值
6。html()方法可以设定某个节点中的html内容
7。click()方法可以响应鼠标点击事件
8。keyup()方法可以响应键盘弹起的事件
9。$.get()方法可以和服务器端进行get方式的交互,注册的callback方法会再数据回来的时候被调用,这个方法会接收到代表服务器端返回数据的一个纯文本的参数
10。addClass() removeClass()方法可以给某个节点添加或删除一个class
11。发送给服务器端的数据在javascript中做两次encodeURI,然后在服务器端的代码中按UTF-8的方式做一次URLDecode,可以解决中文乱码问题
?
?