• Myeclipse+AJAX+Servlet


     最近刚开始学AJAX的知识,这里介绍一个简单的Myeclipse+AJAX+Servlet项目。

    此项目包含3个文件:index.jsp、check.java。还有一个需要配置的文件是:web.xml,此文件在/Webroot/WEB-INF目录下,在建立工程的时候选中一个复选框就会有此文件。

    此项目的完成步骤:

    1.建立index.jsp文件,输入以下代码:

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'index.jsp' starting page</title>
    13     <meta http-equiv="pragma" content="no-cache">
    14     <meta http-equiv="cache-control" content="no-cache">
    15     <meta http-equiv="expires" content="0">    
    16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17     <meta http-equiv="description" content="This is my page">
    18     
    19     <link rel="stylesheet" type="text/css" href="styles.css">
    20     
    21         <script>  
    22 var xmlHttpReq;  
    23 //创建一个XmlHttpRequest对象  
    24 function createXmlHttpRequest()  
    25 {  
    26     window.alert("进入到createXmlHttpRequest()函数");
    27     if(window.XMLHttpRequest)  
    28     {  
    29        xmlHttpReq = new XMLHttpRequest();//非IE浏览器  
    30     }else  
    31     {  
    32        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器  
    33     }  
    34 }  
    35 //检测用户名是否已经被注册  
    36 function checkUser()  
    37 {  
    38 window.alert("进入到checkUser()函数");
    39 var username = document.getElementById("user").value;  
    40 if(username=="")  
    41 {  
    42     alert("用户名必须填写!");  
    43     return false;  
    44 }  
    45 //首先创建对象  
    46 createXmlHttpRequest();  
    47 //指明准备状态改变时回调的函数名  
    48 xmlHttpReq.onreadystatechange=handle;  
    49 //尝试以异步的get方式访问某个URL  
    50 //请求服务器端的一个servlet 
    51 //var url = "/web06/Servlet/" 
    52 var url = "./servlet/Check?username="+username;//+Math.random(); 
    53 window.alert(username); 
    54 xmlHttpReq.open("get",url,true);  
    55 //向服务器发送请求  
    56 xmlHttpReq.send(); 
    57 window.alert("已经发送数据");  
    58 }  
    59 //状态发生改变时回调的函数  
    60 function handle()  
    61 {  
    62 //准备状态为4 
    63 window.alert("进入到handle()函数"); 
    64     if(xmlHttpReq.readyState==4)  
    65     { 
    66     window.alert("响应已完成;您可以获取并使用服务器的响应了。");  
    67     //响应状态码为200,代表一切正常  
    68        if(xmlHttpReq.status==200)  
    69        {  
    70               window.alert("交易成功 "); 
    71            var res = xmlHttpReq.responseText;  
    72            var result = document.getElementById("result");  
    73            result.innerHTML = "<font color=red>"+res+"</font>";  
    74        }  
    75     }  
    76 }  
    77 </script>  
    78   </head>
    79   
    80   <body>
    81       <center><h1>表单注册</h1></center>  
    82 <hr>  
    83 姓名:  
    84 <input type="text" id="user">  
    85 <input type="button" value="检测用户名" onclick="checkUser()">  
    86 <span id="result"></span>  
    87   </body>
    88   </body>
    89 </html>

    2.建立Check.java文件,此文件所属的packet名称为com.wepull.servlet,代码如下:

     1 package com.wepull.servlet;
     2 
     3 import java.io.IOException;  
     4 import javax.servlet.ServletException;  
     5 import javax.servlet.http.HttpServlet;  
     6 import javax.servlet.http.HttpServletRequest;  
     7 import javax.servlet.http.HttpServletResponse;  
     8 //@WebServlet (name="Check",urlPatterns={"/diaocha.do"})
     9 public class Check extends HttpServlet {  
    10      
    11     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    12        //解决返回中文乱码问题
    13         //response.getWriter().println("str");  
    14         response.setCharacterEncoding("utf-8");
    15         
    16        String user = request.getParameter("username");  
    17        response.getWriter().println(user);
    18        response.getWriter().println(request);
    19        System.out.println(user+"传过来是null");
    20        System.out.println(request);
    21       System.out.println(user+"传过来是null");
    22        //解决接收中文乱码问题  
    23        //user = new String(user.getBytes("iso-8859-1"),"utf-8"); 
    24        if(user == "")
    25        {
    26            System.out.println("user is nullD!!!"); 
    27        }
    28        else
    29        {
    30        System.out.println(user); 
    31        
    32        String msg = null;  
    33        if("jing".equals(user))  
    34        {  
    35            msg = "用户名已经被占用!";  
    36        }else  
    37        {  
    38            msg = "用户名可以使用!";  
    39        }  
    40        response.getWriter().println(msg);  
    41        }
    42         
    43     }       
    44     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    45        doGet(request,response);  
    46     }                
    47 }  

    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_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>web08</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

    修改后:

    <?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_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>web08</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <servlet>
            <servlet-name>Check</servlet-name>
            <servlet-class>com.wepull.servlet.Check</servlet-class>
        </servlet>
        <servlet-mapping>
        <servlet-name>Check</servlet-name>
        <url-pattern>/servlet/Check</url-pattern>
        </servlet-mapping> 
    </web-app>

    其中web08是我的项目名称。

    重要提醒(因为这个错误我Debug了好几天。。。)

    var url = "./servlet/Check?username="+username;//+Math.random();

    一定要注意""中的第一个字符 " ." ,否则Servlet就会收不到前端发送的数据(url不正确)。

    4.最后运行出来结果如下:

    4.1

    4.2

    ps:程序运行中和运行结果会有一些调试的代码,请大家自行忽略。

  • 相关阅读:
    关于BehaviorEditorPart 不显示的问题(出自msdn)
    webpart msdn 的位置
    Visual Studio 2008 具有一些新的报表功能和改进之处
    .NET Framework 类库
    Reporting Service 安装 及相关问题如:授予的权限不足解决办法
    单服务器部署&&双服务器部署
    Windows Server 2003安装完毕后汉字都为乱码“方框”,配置域控制器
    Dreamweaver MX显示汉字为乱码的解决方法
    名称以无效字符开头。处理资源 'http://localhost/发布了的/Default.aspx' 时出错。第 1 行,位置: 2
    【随感】my feeling about Long Ying
  • 原文地址:https://www.cnblogs.com/jingjingblog/p/6087429.html
Copyright © 2020-2023  润新知