分享

Ajax+jsp用户登陆例子

 怀念真正的我 2010-08-27
Ajax+jsp用户登陆例子
2009-05-26 17:27

用Ajax可以在不刷新整个页面的情况下与服务器动态连接,这里做了个简单小的例子用到了jsp ajax servlet

先创建一个web项目 Login_demo

1.首先写个servlet,用户输入的登陆信息被提交到这里servlet中,对用户输入的信息判断

Loginservlet.java

在web.xml中的配置如下

<servlet>
    <servlet-name>Loginservlet</servlet-name>
    <servlet-class>com.login.Loginservlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Loginservlet</servlet-name>
    <url-pattern>/servlet/Loginservlet</url-pattern>
</servlet-mapping>

——————————————————————

package com.login;

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 Loginservlet extends HttpServlet {

public Loginservlet() {
   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");
   response.setCharacterEncoding("gbk");
   PrintWriter out = response.getWriter();
   String name = request.getParameter("name");
   String pass = request.getParameter("pass");

//这里为了方便就硬性的给了两个值,当然你可以从数据库中得到
      if(name.equals("luofang")&&pass.equals("123")){
    out.print("suc");//用户名密码正确就返回字符suc
   } else {
    out.print("fail");//失败就返回字符fail
   }
   out.flush();
   out.close();
}

public void init() throws ServletException {
   // Put your code here
}

}

2.现在来写jsp页面主要就是写javascript

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

   <title>用户登陆</title>
</head><script language="javascript">
        var xmlhttp;
        var name;
        //创建XMLHttprequest
        function createXMLHttpRequest(){
            if(window.ActiveXObject){
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }else{
                xmlhttp = new XMLHttpRequest();
            }
        }
       
        function startRequest(){  
             name=document.getElementById("name").value;
            var pass=document.getElementById("pass").value;
            if(name==""){
                 alert("用户名为空!");
                 return false;
            }
            if(pass==""){
                 alert("密码为空!");
                 return false;
            }
            var url="http://localhost:8080/Login_demo/servlet/Loginservlet?name="+name+"&pass="+pass;
            createXMLHttpRequest();
            //设置状态改变时所调用的函数
            xmlhttp.onreadystatechange = stateChange ;
            //设置对服务器的调用
            xmlhttp.open("GET",url,true);
            //发送请求
            xmlhttp.send(null);
           
        }
   
        function stateChange(){
            if(xmlhttp.readyState==4){
                if(xmlhttp.status==200){
                    //做你想在页面上做的事情
                    //document.getElementById("mess").innerHTML=xmlhttp.responseText;
                    //如果用户名密码正确返回suc,错误返回fail
                    if(xmlhttp.responseText=="suc"){
                    // document.getElementById('login').style.display='none';
                    //document.getElementById("mess").innerHTML=name+":您好!";
                    document.getElementById('login').innerHTML=name+":您好!";
                    }
                    else{
                    alert("登陆失败!用户名或密码不正确!");
                    document.getElementById("pass").value="";
                    document.getElementById("name").focus();      
                    }
                }
            }
        }
   
    </script>

<body>
<div style="width:570">
     <div style="float:left" id="login">
            名字:<input type="text" maxlength="10" size="10" name="name" id="name">
            密码:<input type="password" maxlength="10" size="10" name="pass" id="pass">
       <input type="submit" value="登陆" onclick="startRequest();return false;">
       </div>
      
    <div style="float:right" id="mess">  
    <div>
</div>
</body>
</html>


这样就ok了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多