『壹』 在java Web中如何用Ajax实现用户名已存在
我给你做一个例子:希望能帮到你。
实现的功能:注册页面上当输入“lixin”时,显示该用户已被注册。其他的名称无所谓。希望能帮到你。欢迎追问。
一个简单的jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" language="javascript">
//根据浏览器的不同创建不同的XMLHttpRequest
function createXmlHttpRequest(){
var xmlreq=false;
if(window.XMLHttpRequest){
xmlreq=new XMLHttpRequest();
}else if(window.ActiveXobject){
try{
xmlreq = new ActiveXobject("Msxm12.XMLHTTP");
}catch(e1){
try{
xmlreq = new ActiveXobject("Miscoft.XMLHTTP");
}catch(e2){
}
}
}
return xmlreq;
}
//
function usernameCheck(){
var username = document.all.username.value;//获得text的值
var request = createXmlHttpRequest();//创建request的对象
request.open("post","servlet/ValidationServlet?username="+username);
request.send();
request.onreadystatechange = function(){
if(request.readyState==4&request.status==200)
{
var value = request.responseText;
if(value=="true"){
document.all.unc.innerHTML="该用户名已经被注册";}
}else{
document.all.unc.innerHTML="该用户可以注册";
}
}}
</script>
</head>
<body>
用户姓名:<input type ="text" name="username" onblur="usernameCheck()" /><font color="red" size="-1" id="unc"></font>
<br>
用户密码:<input type ="password" name= "userpw" />
</body>
</html>
用到的Servlet:
package sample;
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 ValidationServlet extends HttpServlet {
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
String username = request.getParameter("username");
if(username.equals("lixin")){
response.getWriter().print("true");}
else{
response.getWriter().print("false");
}
}
}
『贰』 java怎么处理ajax
ajax是一种用来改善用户体验的技术,其实质是利用浏览器内置的一个特殊的对象
(XMLHttpRequest对象,一般称之为ajax对象)异步地(当ajax对象发请求时,浏览
器不会销毁当前页面,用户任然可以对当前页面做其他操作)向服务器发送请求,
服务器送回部分数据(并不是一个完整的页面),利用这些数据更新当前页面。整
个过程,页面无刷新,不打断用户的操作
编程步骤:
step1,获得ajax对象
比如:
var xhr=getXhr();
step2,发请求:
方式一:get请求
xhr.open('get','check_username.do?username=zs',true);
请求参数、请求资源路径、是否异步
注意:
a,get请求必须将请求参数添加到请求资源路径的后面。
b,true表示异步请求、false表示同步请求。
异步请求:发请求时,浏览器不会销毁当前页面,用户可以对当前页面做
其他操作。
同步请求:发送请求时,浏览器不会销毁当前页面,用户不可以对当前页面
做其他操作。
xhr.onreadystatechange=f1;
xhr.send(null);
方式二:post请求
xhr.open('post','','')
step3,编写服务器端的处理程序,一般服务器只需要返回部分的数据。
step4,编写事件处理函数。
function f1(){
if(xhr.readyState==4){
var txt=xhr.responseText;
使用txt更新当前页面...
}
}
java服务器端处理ajax发送的请求,和处理其他请求是一样的,只是在客户端页面表现的不同,比如:执行页面发送删除请求,服务器端在执行删除后,页面是需要刷新的。
ajax最经典的用法是验证码,注册页面如果因为验证码输入错误要刷新,之前的信息重填,估计用户会崩溃,采用ajax异步发送请求,就不会影响之前填写的信息
『叁』 如何使用ajax调用java类
ajax调用java后台的方法,其实是通过url链接来访问,示例如下:package com.xxxx.xxxx.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
public class oaLoginLimitedServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static Connection conn=null;
private static PreparedStatement pstmt=null;
public oaLoginLimitedServlet() {
super();
}
public void destroy() {
super.destroy();
}
public static String getCount(String userid)
{
String v_sql=".....";
String v_count="";
try {
pstmt = conn.prepareStatement(v_sql);
pstmt.setString(1, userid);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
v_count = rs.getString(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return v_count;
}
public static Connection getConnection(){
Context ctx = null;
try {
ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jndiname");
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String v_userid=request.getParameter("userid");
System.out.println(v_userid);
getConnection();
String v_count=getCount(v_userid);
response.setCharacterEncoding("UTF-8");
response.getWriter().write(v_count);
response.flushBuffer();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
}
如果要前端能够访问到该servlet,需要将该servlet注册到 web.xml文件中。需要在web.xml文件中添加以下内容
[html] view plain
<servlet>
<servlet-name>oaLoginLimitedServlet</servlet-name>
<servlet-class>com.xxxx.xxxx.servlet.oaLoginLimitedServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>oaLoginLimitedServlet</servlet-name>
<url-pattern>/oaLoginLimitedServlet</url-pattern>
</servlet-mapping>
重启相关服务。
通过ajax就可以调用了。
[html] view plain
var msg = $.ajax({
type: "post",
url: ....+'/oaLoginLimitedServlet?userid='+ $('#act').val(),
async:false
}).responseText;
https://..com/question/2201763852265627548.html
『肆』 Java/Ajax:关于Ajax实现登录功能
实现思路就是通过ajax的固定格式去访问Action中对应的“LoginAction”方法。之后查询数据库,根据结果返回情况来判断是否可以登录。
//登录方法
function login(){
if(validParams()){
$.ajax({
url:EossGlobal.basePath + '/login/loginIn.action',
data: 'userId='+$('#userId').val()+'&userPwd='+$('#userPwd').val()+'&',
type: 'POST',
dataType : "json",
error:function (XMLHttpRequest, textStatus, errorThrown) {
// checkRestfulError(XMLHttpRequest, error, questionFailed);
},
success:function (data, textStatus) {//如果返回结果成功表示查询成功
if(data.flag){//返回结果标志位为true,那么说明登录用户存在
$('#warnInfo').hide();
window.location.href = EossGlobal.basePath + '/system/layout/index.jsp';
}else{
$('#warnInfo').html(data.msg);
$('#warnInfo').show();
}
}
});
}
}
『伍』 java中AJAX使用JSON的实例
在服务器那边,返回一个JSON格式的字符串,如——
a、"{\"name\":\"dd\",\"age\":\"12\"}";
b、"[{\"name\":\"dd\",\"age\":\"12\"},{\"name\":\"kk\",\"age\":\"20\"}]";
然后你可以使用JQuery来接收,如——
var json = $.ajax{{
url : "getJson", /*请求路径*/
data : "data=123" /*参数*/
}};
var message = eval('(' + json.responseText + ')'); /*解析JSON*/
如果你的JSON格式是如上面a那种,那可以这样获取数据——
message.name、message.age
如果是b那种,可以这样——
message[0].name、message[1].age
反正你可以通过eval('(' + responseText + ')'); 来解析JSON数据。。。。
你可以上W3C网站看一下资料。。。。
『陆』 java 怎样使用ajax实现注册
$("#确定按钮ID").click(function(){
var username = $("#username").val(); //获取 用户名密码
var password = $("#username").val();
if((username !=null || username != "")&&(password!=null || password !="")){
//用户名密码封装到JSON数组
var settings = {"sid":"regist",
"username":username,
"password":password}
$.ajax({
type: "GET",
url: httpUrl+'/insert.json',
success:function(resp){
alert("注册成功!");
},
dataType :"json",
jsonp :'callback',
data: settings //用户名密码的json参数
});
}
else alert("用户名和密码不能为空,请重新输入!")
});
上面的我是用json 传的 你也可以换别的方式 这个你就当个参考好了
$.ajax({
type: "POST",
url: "some.php",
data: "username=John&password=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
这个你应该好理解吧。就不注释了。
『柒』 ajax怎么传值到后台,java的
AJAX 是一个HTTP后台请求 不管是怎么样的请求都是HTTP的 只要是HTTP的他就有post或者get
每个SERLVET / JSP 都有一个全世界唯一的URL
AJAX都现在的话你还没使用JS框架那我也就没必要回答你的问题了``
推荐使用下 Prototype 或者 JQuery 有兴趣的话的 也可以看看EXt等这个带UI的
这里说下prototype的AJAX请求
new Ajax.Request(url/*Serlvet的访问地址*/,{
onSuccess : function(r){
//r.responseText 这就是你的servlet返回的html
}
},parameters:{xx:'xx'})
然后你就可以这样拉``````
『捌』 如何在Java项目中使用Ajax
上面都太麻烦了只要写一个函数就可以
<body>
<SCRIPT LANGUAGE="JavaScript">
check(){
var stuId = document.regForm.stuId.value;
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp.open("GET", "check.do?stuId="+stuId, true);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
checkResult.innerHTML = xmlHttp.responseText;
}
else{
checkResult.innerHTML = "正在检测...";
}
}
xmlHttp.send();
}
</SCRIPT>
<form name="regForm">
请您输入学生学号:<input type="text" name="stuId" onblur="check()">
<div id="checkResult"></div><BR>
请您输入学生姓名:<input type="text" name="stuName"><BR>
<input type="button" value="提交按钮">
</form>
当stuId输入框失去焦点时执行javascript函数check()通过xmlHttp.open("GET", "check.do?stuId="+stuId, true);以get方式发送给check.do的servlet在servlet里用request获取传过去的stuId参数接下去就和一般的一样连数据库根据id,返回的结果checkResult.innerHTML = xmlHttp.responseText;会显示在div上,很简单