『壹』 在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上,很簡單