1:register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>register.jsp</title>
<script type="text/javascript">
var xhr;
function checkUsername() {
//获取标签
var checkResult = document.getElementById("checkResult");
checkResult.innerHTML = "<font color='red'>正在检测用户名...</font>";
//获取用户输入的用户名
var username = document.getElementById("username").value;
//创建浏览器中可以发送异步请求的对象xhr,不同浏览器的创建方式不同
if(window.ActiveXObject){//IE浏览器
xhr = new ActiveXObject("Microsoft.XMLHttp");
}else if(window.XMLHttpRequest){//不是IE浏览器
xhr = new XMLHttpRequest();
} //事件监听(一旦发现状态发生变化,就执行函数handleRequest,得到服务器响应完成页面局部刷新)
xhr.onreadystatechange = handleRequest;
/*用GET方式发送请求
xhr.open("GET","UserServlet?f=1&username="+username,true);
xhr.send(null); */ //POST发送请求//自己创建的UserServlet
xhr.open("POST","UserServlet",true);
//设置POST请求的头
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//发送请求数据
xhr.send("f=1&username="+username);
} //得到服务器响应,完成页面局部刷新
function handleRequest() {
//获取标签
var checkResult = document.getElementById("checkResult");
if(xhr.readyState == 4){
if(xhr.status == 200){
checkResult.innerHTML = "<font color='red'>"+xhr.responseText+"</font>";
}else{
alert("有错"+xhr.status+":"+xhr.statusText);
}
}
}
</script>
</head>
<body> <form action="/ajax_1/UserServlet?f=1" method="post">
用户名:<input type="text" id="username" name="username" onblur="checkUsername();"><label id="checkResult"></label><br>
<input type="password" id="password" name="password"><br>
<input type="submit" value="注册">
</form>
</body>
</html>

2:UserServlet.java

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//处理响应中文乱码
response.setContentType("text/html;charset=UTF-8"); Integer f = Integer.parseInt(request.getParameter("f"));
switch (f) {
case 1:
this.checkUsername(request, response);
break;
case 2:
this.register(request, response);
break;
}
} //检测用户名是否重复
protected void checkUsername(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter();
//获取从前台页面传来的username
String username = request.getParameter("username"); //简化处理逻辑(本应该去数据库查询)
if("zhangsan".equals(username)){
out.print("用户名"+username+"已经有人注册,请选择一个新的用户名");
}else{
out.print("恭喜您"+username+"可以使用");
} out.close();
} //用户注册
protected void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out =response.getWriter();
String username = request.getParameter("username"); //简化处理逻辑(本应该去数据库添加)
if("zhangsan".equals(username)){
out.print("用户名"+username+"已经有人注册,请选择一个新的用户名");
}else{
//数据库添加...
out.print("恭喜您"+username+"注册成功");
} out.close();
} }

3:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
</web-app>

--------------------------------------------------------------------------------------------------------------------------------

ajax基础------备忘的更多相关文章

  1. UITextView -- 基础备忘

    UITextView 这篇文章只涉及到基本的使用,日后会写一些关于结合TextKit的备忘 基本属性 let screenSize = UIScreen.mainScreen().bounds.siz ...

  2. jquery中的ajax方法(备忘)

    参考:https://www.cnblogs.com/tylerdonet/p/3520862.html w3school:http://www.w3school.com.cn/jquery/ajax ...

  3. scala基础备忘

    声明一个变量 声明一个常量 显式指定类型 定义一个main函数 package org.admln.scala class HelloScala { } object HelloScala { def ...

  4. Java Socket基础[备忘]

    1.服务端----Server.java import javax.swing.*; import java.io.*; import java.net.*; import java.awt.*; i ...

  5. javaweb基础备忘

    Request对象的主要方法有哪些 setAttribute(String name,Object):设置名字为name的request 的参数值 getAttribute(String name): ...

  6. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  7. AngularJS之备忘与诀窍

    译自:<angularjs> 备忘与诀窍 目前为止,之前的章节已经覆盖了Angular所有功能结构中的大多数,包括指令,服务,控制器,资源以及其它内容.但是我们知道有时候仅仅阅读是不够的. ...

  8. Javascript备忘模式

    使用备忘模式,利用了函数的自定义属性,先看一个例子 var test = function (){} test.myAttr = "attr"; 这样,就给test加上了一个自定义 ...

  9. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

随机推荐

  1. Linux学习笔记(四)Linux常用命令:帮助命令

    一.帮助命令man [man] [命令] 例如: man ls man的级别 man -f [命令]  相当于  whereis [命令] 可查看该命令有几个等级,进而可以通过 man [等级数] [ ...

  2. CSCD核心,北大中文核心

    从两篇文章看两个杂志 title 子空间聚类的重建模型及其快速算法 稀疏正则非凸优化问题之全局收敛分析 author 夏雨晴(浙江大学数学科学学院),张振跃 储敏(武汉大学数学与统计学院) journ ...

  3. @Configuration的使用 和作用(转)

    从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplic ...

  4. 中介者模式(Mediator)---行为型

    1 基础知识 定义:用一个中介对象来封装一系列的对象交互.中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 本质:封装交互 使用场景:(1)如果一组对象之间的 ...

  5. 小米oj 判断是否为连乘数字串

     判断是否为连乘数字串 序号:#32难度:非常难时间限制:1000ms内存限制:10M 描述 给出一个字符串S,判断S是否为连乘字符串. 连乘字符串定义为: 字符串拆分成若干数字,后面的数字(从第三个 ...

  6. 【CUDA 基础】5.4 合并的全局内存访问

    title: [CUDA 基础]5.4 合并的全局内存访问 categories: - CUDA - Freshman tags: - 合并 - 转置 toc: true date: 2018-06- ...

  7. Django-事务和锁

    一.事务 1.全局开启事务 在Web应用中,常用的事务处理方式是将每个请求都包裹在一个事务中.这个功能使用起来非常简单,你只需要将它的配置项ATOMIC_REQUESTS设置为True. 它是这样工作 ...

  8. 安装mongodb-window10版

    第一.下载mongodb 官方地址:https://www.mongodb.com/ 第二步mongodb安装 运行mongodb-win32-x86_64-2008plus-ssl-v3.4-lat ...

  9. elasticsearch集群部署以及head插件安装

    环境准备 elasticsearch是Java程序写的因此必须装jdk,否则使用不了. [root@openstack ~]# java -versionopenjdk version "1 ...

  10. 1.2 JAVA的String类和StringBuffer类

    一.String 1.String概念 String不属于基本类型,String是final修饰的是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了如果要对String修改使用 ...