• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

zhanglei@bokeyuan

friend of my
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JS+servlet实现登录功能

login.jsp引入js文件

  在zm_core里面定义处理验证的方法

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

  用的是zm_map里面定义的对象

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

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

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

Zm_map.js里面定义方法

    this.login=function(funobj,params_in)

    {

 //调用已经在后台定义的发送ajax的方法

        var optype = "Login";  

        var paramsInfo = params_in;

        var params = "optype="+optype+"&paramsInfo="+paramsInfo;

        this.sendAjaxRequest(params,funobj);

    }

checkLogin.js里面用ZM_map调用它的方法

function checkLogin(){

    var username = document.getElementById('username').value;

    var password = document.getElementById('password').value;

    if (username == '') {

       alert("请输入用户名!");

    }

    if (password == '') {

        alert('密码不能为空');

    }

  //组合传参

    var params=username+','+password;

    通过引入zm_map.js文件就可以调用它的方法。然后发送ajax请求

    ZM_Map.login(login_callback,params);

}

后台处理类

 

Ajax请求通过层层处理到达相应的后台处理类

public class Login extends AjaxAncestor {

 

    @Override

    public String execute(HttpServletRequest request,

           HttpServletResponse response, Hashtable callBackData) {

       //得到相应的参数组合

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

       //分开参数配合sql语句的查询

       String[] userinfo=paramsInfo.split(",");

 

       String sql="select * from tab_userinfo where id="+userinfo[0]+" and password= "+userinfo[1] ;

       DataBaseAccess dbaccess=new DataBaseAccess();

 

       Pgis_User puser =new Pgis_User();

       puser.setUsername("明明");

       puser.setXm("");

       puser.setZwcode("");

 

       Pgis_Zzjg pz=new Pgis_Zzjg();

 

       puser.setZzjg(pz);

       try {

           ResultSet rs=dbaccess.getRs(sql);

        将结果集放到相应的集合中,然后在放入session中

           while(rs.next())

           {

              puser.setId(rs.getString("id"));

              puser.setName(rs.getString("name"));

              puser.setDW_CODE(rs.getString("DW_CODE"));

           }

       } catch (SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       // TODO Auto-generated method stub

       return "OK";

    }

}

在回调函数里面,可以通过返回的结果,判断、然后跳页面等操作

Session的值是始终不变的

function login_callback()

{

    var req = this.req;

    var ready = req.readyState;

    if(ready == READY_STATE_COMPLETE)

    {  

        var str=this.req.responseText;

        alert(str);

        if(str=='OK')

        {

            window.open('index.jsp','_self');

        }else{

            alert("用户信息错误!");

        }

返回结果到回调函数中

    <%

       UserInfo user=(UserInfo)session.getAttribute("userinfo");

 

       String id = user.getId();

       String name = user.getName();

       String DW_CODE = user.getDW_CODE();

       %>

posted on 2011-07-12 12:05  zhanglei@bokeyuan  阅读(230)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3