`
longzhun
  • 浏览: 360915 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跟我学JQuery---------------第一课

阅读更多

官方网站: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,可以解决中文乱码问题

 


 

  • 大小: 10 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics