java异步登录_java异步方式实现登录

本文实例为大家分享了java异步登录的具体代码,供大家参考,具体内容如下

1.LoginServletAjax.java

package com.scce.servlet;

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;

import net.sf.json.JSONObject;

import com.scce.dao.AdminUserDao;

import com.scce.pojo.AdminUser;

public class LoginServletAjax extends HttpServlet {

@Override

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

request.setCharacterEncoding("utf-8");

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

String method = request.getMethod();

if (method.equals("POST")) {

doLoginAjax(request, response);

} else if (method.equals("GET")) {

}

}

public void doLoginAjax(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();

// 用户名

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

// 密码

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

String msg = "";

AdminUserDao adminUserDao = new AdminUserDao();

AdminUser adminUser = adminUserDao.queryUser(username, password);

if (adminUser != null) {

msg="登录成功!";

String jsonObj= JSONObject.fromObject(adminUser).toString();

out.print("{\"Msg\":\""+msg+"\",\"rows\":"+jsonObj+"}");

System.out.println("{\"Msg\":\""+msg+"\",\"rows\":"+jsonObj+"}");

} else {

msg="用户名或者密码不正确!";

out.print("{\"Msg\":\""+msg+"\"}");

}

out.flush();

out.close();

}

}

2.test2.html

chapter3-test2

type="text/css">

//string number boolean null object undefined function

$(function() {

$("#LoginAdd").dialog({

title : "用户登录",

collapsible : 'true',

width : 300,

height : 200,

buttons : [ {

text : '登录',

iconCls : 'icon-add',

handler : function() {

console.info("用户登录!");

ajaxFrm();//ajax提交表单的函数

}

} ]

});

});

function ajaxFrm() {

//------------------------注释的是ajax提交方法----------------------------

var LoginList = $("#LoginList");

$.ajax({

url : '../LoginServletAjax?tag=test',//相对路径访问

type : 'POST', //提交请求的方式

data : $('#form1').serialize()+'&names=liuqin&age=26',//将表单参数序列化,发送到服务器的数据(提交额外的参数)

dataType : 'json', //预期服务器返回的数据类型-json object

success : function(data) {//请求成功后将调用此方法var data = {"Msg":"登录成功","rows":{"username":"admin",...}}

console.info(data);//调试代码

$.messager.alert("提示", data.Msg);

LoginList.html("");//清空数据

if (data.rows) {

var stra = LoginList.html() + "用户名:" + data.rows.username

+ "--密码:" + data.rows.password + "
";

LoginList.html(stra);

}

},

error : function(error) { //请求失败时将调用此方法

console.info(error);

}

});

/*var LoginList = $("#LoginList");

$("#form1").form("submit", {

url: "../LoginServletAjax?tag=test",

onSubmit: function (param) { //提交额外的参数

param.name="liuqin";

param.age=27;

var username = $("#username").val();

var password = $("#password").val();

if (username.length == 0 || password.length == 0) {

$.messager.alert('警告', '请输入用户名和密码');

return false;

}

return true;

},

success: function (data) {

//var data = eval('(' + data + ')');

var data = $.parseJSON(data);//服务器端返回json字符串转成json对象-js object

console.info(data);

$.messager.alert("提示", data.Msg);

LoginList.html("");//清空数据

if (data.rows) {

var stra = LoginList.html() + "用户名:" + data.rows.username

+ "--密码:" + data.rows.password + "
";

LoginList.html(stra);

}

}

});*/

}

用户名:

class="easyui-validatebox textbox">

密码:

class="easyui-validatebox textbox" type="password">

用户信息加载中......

src="../video/B4934A0C53FC55703BFE3F6843E66166.mp4" type="video/mp4">

Your browser does not support the video tag.

以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java实现异步队列可以通过以下步骤: 1. 定义一个队列,用于存储任务。 2. 创建一个线程池,用于执行任务。 3. 定义一个任务类,实现 Runnable 接口,用于执行具体的任务。 4. 将任务添加到队列中,等待执行。 5. 创建一个线程,用于从队列中获取任务,并将任务交给线程池执行。 下面是一段示例代码: ```java import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; public class AsyncQueue { private LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<>(); private ExecutorService executorService = Executors.newFixedThreadPool(10); public void submit(Runnable task) { queue.offer(task); } public void start() { new Thread(() -> { while (true) { try { Runnable task = queue.take(); executorService.execute(task); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } } ``` 在上面的代码中,我们定义了一个队列 `queue`,用于存储任务。我们还创建了一个线程池 `executorService`,用于执行任务。我们定义了一个 `submit` 方法,将任务添加到队列中。我们还定义了一个 `start` 方法,启动一个线程用于从队列中获取任务,并将任务交给线程池执行。 使用时,我们可以这样做: ```java AsyncQueue asyncQueue = new AsyncQueue(); asyncQueue.start(); asyncQueue.submit(() -> { // 执行具体的任务 }); ``` 这样,我们就实现了一个简单的异步队列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值