Web客户端编程

一、实验目的:

使用 HTML 超文本标记语言制作简单页面,要求通过实验能够掌握 HTML 文件的基本结构和文档的创建、编辑及保存。 验证并掌握 HTML 超文本标记语言的文本、图像、超链接、表格、表单等 标记的使用。 通过实验掌握层叠样式表 CSS 的创建及应用,掌握在网页中插入层叠样式 表 CSS 的常用方法,掌握层叠样式表 CSS 的主要基本属性的使用。 通过实验了解 JavaScript 的编程规范及基本语法,能够分析 JavaScript 程序 的功能,可以在网页制作中使用 JavaScript 程序。 通过实验了解 Ajax 的编程方法,掌握 Ajax 编程技巧。

二、实验环境:

MyEclipse10+Tomcat 7.0+Java EE 6.0

三、实验内容:

1)开发一个用户注册界面,要求: 用户名基于 Ajax 检测是否重复,年龄需用 JavaScript 检查格式是否正确。

1.首先New Web Project

2.新建register.html文件,HTML代码如下:

<!DOCTYPE html>

<html>

  <head>

    <title>注册页面</title>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

   <script type="text/javascript" src="js/ajax.js"></script>

    <script>

              function check() {

                     var username=document.getElementById("username");

                     var userpwd=document.getElementById("userpwd");

                     var reuserpwd=document.getElementById("reuserpwd");

                     var age=document.getElementById("age");

                     if(username.value=="")

                     {

                            alert("用户名不能为空,请输入用户名!");

                         username.focus();

                         return false;

                     }

                     if(userpwd.value=="")

                     {

                            alert("密码不能为空,请输入密码!");

                            userpwd.focus();

                            return false;

                     }

                     if(reuserpwd.value=="")

                     {

                            alert("确认密码不能为空,请确认密码!");

                            reuserpwd.focus();

                            return false;

                     }

                     if(userpwd.value!=reuserpwd.value)

                     {

                            alert("两次输入的密码不同,请重新输入!");

                            reuserpwd.focus();

                            return false;

                     }

                     if(age.value!="" && (age.value<=0 || age.value>100))

                     {

                            alert("年龄格式错误,请重新输入!");

                            age.focus();

                            return false;

                  }

              }

              function usernamecheck() {

                     var url="formcheck";

                  var params="userid="+document.getElementById("username").value+"&userpwd="+document.getElementById("userpwd").value;

                  sendRequest(url,params,'POST',showresult);

              }

              function showresult() {

                     if (httpRequest.readyState == 4)

                     {

                            if (httpRequest.status == 200)

                            {

                                   var info=httpRequest.responseText;

                                   document.getElementById("result").innerHTML=info;

                            }

                     }

              }

       </script>

  </head>



  <body>

    <p>用户名:<input type="text" name="username" id="username" placeholder="请输入用户名" onblur="usernamecheck()"></p>

    <p>密码:<input type="password" name="userpwd" id="userpwd" placeholder="请输入密码"></p>

    <p>确认密码:<input type="password" name="reuserpwd" id="reuserpwd" placeholder="请确认密码"></p>

    <p>年龄:<input type="text" name="age" id="age" placeholder="请输入年龄"></p>

    <input type="button" name="register" value="注册" onclick="check();usernamecheck()">

    <div id="result"></div>

  </body>

</html>

3.在WebRoot目录下新建文件夹,文件夹命名为js;在js文件夹下新建ajax.js文件,ajax.js文件代码如下:

var httpRequest=null;

function createXHR(){   

   if(window.XMLHttpRequest){ //Mozilla,Safari,Opera,IE7等

      httpRequest = new XMLHttpRequest();

   }else if(window.ActiveXObject){

      try{

        httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); //IE较新版本

      }catch(e){

        try {

           httpRequest = new ActiveXObject("Microsoft.XMLHTTP");//IE较老版本

        }catch(e){

           httpRequest = null;

        }

      }    

   } 

   if(!httpRequest){

      alert("fail to create httpRequest");    

   }

}



function sendRequest(url,params,method,handler){

  

   createXHR(); 

   if(!httpRequest) return false;  

   httpRequest.onreadystatechange = handler;

  

   if(method == "GET"){ 

       httpRequest.open(method,url+ '?' + params,true);

      httpRequest.send(null);

   }

   if(method == "POST"){

       httpRequest.open(method,url,true);

      httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");

      httpRequest.send(params);

   } 

}

4.在src文件目录下新建Servlet,命名为FormCheck (或者新建FormChek.java文件),注意打包,包名为servlets。FormChek.java文件代码如下:

package servlets;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



public class FormCheck extends HttpServlet {

   public FormCheck() {

      super();

   }

   public void destroy() {

      super.destroy();

   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

      doPost(request, response);

   }

   public void doPost(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

      response.setContentType("text/html;charset=UTF-8");

      PrintWriter out = response.getWriter();

      request.setCharacterEncoding("UTF-8");

      String userid=request.getParameter("userid");

      if("李四".equals(userid)){

        out.print("很抱歉,该用户名已存在!");

      }

      else{

        String userpwd=request.getParameter("userpwd");

        if(!"".equals(userpwd)){

           out.print("恭喜您,用户"+userid+"注册成功!");

        }

      }

   }

   public void init() throws ServletException {

      // Put your code here

   }

}

5.在MyEclipse10中部署并运行Tomcat服务器,在浏览器地址栏中输入http://localhost:8080/ch2/register.html   其中ch2为Web工程的名字。

6.运行结果:

测试:

 

猜你喜欢

转载自blog.csdn.net/xu_benjamin/article/details/83752242