1. 程式人生 > >ssh+ajax 註冊驗證 以及struts2+json注意事項

ssh+ajax 註冊驗證 以及struts2+json注意事項

在我們日常開發中,經常會遇到註冊時進行使用者名稱非同步驗證這一步,下面是我開發時的一個小例子,希望能對大家有幫助。需要注意的是,我們後臺是利用json返回json字串,struts2整合json我們需要加入以下jar包:

<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-json-plugin</artifactId>
			<version>2.3.16</version>
		</dependency>

		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
		</dependency>


頁面效果:左圖是使用者名稱已被註冊,右圖是允許註冊。

下面是我的前臺程式碼:

<script type="text/javascript">
	function checkLogin(){
		var xmlHttp;

		var name = document.getElementById("email").value;
		if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
		}
		else {
		xmlHttp = new ActiveXObject("MicroSoft.XMLHTTP");//老版本的ie
		}
		xmlHttp.onreadystatechange=function(){
			if(xmlHttp.readyState==4 && xmlHttp.status==200){
			//var ss = xmlHttp.responseText;
		
			var dataObj=eval("("+xmlHttp.responseText+")");
		
				if(dataObj.exist=="false"){
				
				document.getElementById("tip").innerHTML="<img src='images/ok.png'/>";
				}
				else
				{
				
					document.getElementById("tip").innerHTML="<img src='images/no.png'/>";
				}
			}
		};
		xmlHttp.open("post","Json_checkRegister.action?checkname="+name,true);
		xmlHttp.send();
		}
	</script>

<p><input type="email" id="email" name="user.username" onblur="checkLogin();" class="loginInput" autofocus="autofocus" required="required" autocomplete="off" placeholder="請輸入電子郵箱" value="" /><font id="tip"></font></p>


下面是後臺action程式碼:

public String checkRegister() throws Exception{
		HttpServletResponse response = ServletActionContext.getResponse();
		JSONObject json=new JSONObject();  
		PrintWriter out  = response.getWriter();
		if(this.userservice.checkRegister(checkname)==false){
			
			json.put("exist", "false");
			out.println(json);  
			out.flush();
			out.close();
			return "userAllowRegister";
		}
			json.put("exist", "true");
			out.println(json); 
			out.flush();
			out.close();
		return "userNoRegister";
	}
	


配置檔案strut.xml程式碼:

<package name="json" namespace="/" extends="json-default">
	<action name="Json_*" class="user_action" method="{1}">
		<result name="userAllowRegister" type="json"></result>
		<result name="userNoRegister" type="json"></result>
		</action>
		</package>

注意返回型別為json

JSON(Java Script Object Notation),是一種語言無關的資料交換格式。 
JSON外掛是Structs 2 的Ajax外掛,通過利用JSON外掛,開發者可以很方便,靈活的利用Ajax進行開發。
Json是一種輕量級的資料交換格式,JSon外掛提供了一種名為json的Action ResultType 。
一旦為Action指定了該結果處理型別,JSON外掛就會自動將Action裡的資料序列化成JSON格式的資料,
並返回給客戶端物理檢視的JavaScript。簡單的說,JSON外掛允許我們在JavaScript中非同步的呼叫Action,
而且Action不需要指定檢視來顯示Action的資訊顯示。
而是由JSON外掛來負責具體將Action裡面具體的資訊返回給呼叫頁面。
Json的資料格式可簡單如下形式: person = { name: 'Jim',age: 18,gender: 'man'}。
如果action的屬性很多,我們想要從Action返回到呼叫頁面的資料。

如果我們在後臺不希望返回的資料,可以禁止其被序列化,可以使用 @JSON(serialize=false)註解對其遮蔽,說明
此屬性不被加入json。


以下三個註解也經常會用到:
在屬性get方法上面加

@JSON(name="newName")json中的名稱
@JSON(serialize=false)屬性不被加入
[email protected](format="yyyy-MM-dd")格式化日期

這個時候配置includeProperties或者excludeProperties攔截器即可。

<!-- 只包含user.id屬性 -->

<resulttype="json"name="user">

<paramname="includeProperties">

user\.id

</param>

<!-- 不包含user屬性 -->

<resulttype="json"name="list">

<paramname="excludeProperties">

user

</param>

</result>

<!-- 根物件只包含user -->

<resulttype="json">

<paramname="root">

user

</param>

</result>

相關推薦

ssh+ajax 註冊驗證 以及struts2+json注意事項

在我們日常開發中,經常會遇到註冊時進行使用者名稱非同步驗證這一步,下面是我開發時的一個小例子,希望能對大家有幫助。需要注意的是,我們後臺是利用json返回json字串,struts2整合json我們需要加入以下jar包: <dependency> <

SSH+AJAX 註冊使用者名稱唯一性驗證

不說廢話,上程式碼。pojopackage com.pojo; public class Client { private Integer clientId; private String clientName; private String clientPass;

keras學習筆記2——Merge理解、GPU的設定方法,以及新手的注意事項

keras學習筆記2——Merge、GPU呼叫、快速開始及常見問題 參考資料:http://keras-cn.readthedocs.io/en/latest/ 1. Merge層 Merge層主要是用來合併多個model的,例子如下: from keras.layers impor

A2·ActiveMQ ajax使用方式及Spring配置注意事項

       通過上一篇文章https://blog.csdn.net/lycz_tpself/article/details/81115918可以完成ActiveMQ後端使用要完成的配置,本文基於上篇博文介紹前端ajax使用所需要的額

Python爬蟲開發(五):反爬蟲措施以及爬蟲編寫注意事項

0×01 介紹 本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並

C++ 二叉樹的實現、基本操作以及指標使用注意事項(轉自部落格)

內容: 模板實現簡單的二叉樹 二叉樹的前序,中序,後序遍歷 統計二叉樹結點的個數和深度 二叉樹的銷燬操作   具體的實現過程及注意事項見程式碼部分;   #include <iostream&

java基礎第一章_變數以及使用變數注意事項

變數 變數: 在程式執行過程中其值可以發生改變的量。注意事項: 1-作用域:    我們都知道變數在一個大括號的作用域裡,那麼這個變數就在這個大括號裡有效。    而且在同一個作用域裡不能定義兩個相同

hadoop32位編譯為64位以及安裝執行注意事項--centos7

tar -xvzf jdk-7u60-linux-x64.tar.gz 2.編輯 /etc/profile 檔案 在最後一行新增 export JAVA_HOME=/hadoop/java/jdk1.7.0_75export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=

AJAX傳送 PUT和DELETE請求注意事項

ajax使用restful服務傳送put 和 delete 請求時直接傳參會出現問題 一,採用POST  + _method:delete/put  + filter 的方法 ajax傳送put 和 delete 請求時,需要傳遞引數,如果引數在url位址列上,則可以正常使

Servlet如何編寫以及寫Servlet注意事項

1、Servlet:主要用於互動式的瀏覽和修改資料,生成web內容。 2、過程:一般是網頁將資料交給Servlet進行處理,Servlet處理好後便跳轉到相應的頁面。 3、建立: a:建立一個class然後在web.xml中進行配置Servlet b:直接建立Servl

表單提交前onclick使用reuturn時,ajax請求同步非同步的一點注意事項

因為會經常用到ajax提交請求判斷一些資訊,比如,使用者賬號名是否存在等等,但如果是在提交表單資料按鈕的onclick時,用return check()來跳轉去最後驗證一下表單資料是否為空等等。需要注意一些問題。 當進行ajax請求時,如果success回撥得

各種語言HMAC SHA256實現以及Base64編碼注意事項

語言包含:  Javascript ,PHP,Java,Groovy,C#,Objective C,Go,Ruby,Python,Perl,Dart,Swift,Rust,Powershell。Javascript HMAC SHA256 Run the code onl

ajax+jquery+json+css3+html5實現登入、註冊以及主頁面的增刪改查

主要思路 在登入介面,輸入使用者名稱和密碼,失焦的時候,判斷輸入的使用者名稱和密碼是否符合相應的正則表示式的要求。如果符合,就傳送ajax請求到服務端,服務端接受到請求,就把從頁面中傳來的資料和json檔案裡面的資料進行對比,如果有相同的資料,就返回1,通過

基於struts+hibernate+ajax的登入註冊驗證與購物車demo解析

本博文主要介紹使用struts完成頁面跳轉和hibernate訪問資料庫的方式,完成簡單的ajax註冊驗證和購物車功能demo例項。將搭建過程和一些心得分享出來。此文為流程分析,並不介紹具體實現過程的每個細節,原始碼放在了下載頁。頁面截圖如下(請忽略頁面醜,只為功能齊全...) 一:struts

基於SSH的預約掛號系統之註冊驗證

註冊頁面描述   註冊頁面主要內容如下 前端驗證   在滑鼠游標離開輸入框,並且輸入框內容有改變時進行驗證。   1、暱稱:判斷是否為空-->正則表示式判斷是否合法   /*判斷使用者名稱是否為空 是否合法(2-6個漢字)*/ $(":input[name=use

java Web中實現QQ郵箱驗證以及驗證註冊使用者

實體類:User.java package com.yinhe.bean; import java.util.Date; public class User { private String uid; private String username; private Str

ajax註冊頁面非同步驗證

ajax的原理大家可以看上圖 如何獲得Ajax物件? XMLHttpRequest沒有標準化,要區分瀏覽器。   function getXhr(){    var xhr = null;    if(window.XMLHttpRequest){     //非

使用ajax 實現使用者的使用者名稱註冊驗證,如果該使用者已存在則提示該使用者已存在

MyJsp.jsp  程式碼: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DO

SSH網上商城】——AJAX非同步驗證是否存在該使用者名稱

        這幾天抽著中午的空隙,敲SSH網上商城,剛開始敲的時候,弄SSH的框架花了段時間,框架搭完以後,開始首頁跳轉,一切都開始步入正軌了。敲了幾集視訊,感覺SSH網上商城的專案挺好玩的,雖然開始學習的時候不太懂,但是看著功能一個一個的實現,很有成就感。 使用aja

ajax實現驗證使用者名稱是否已經存在(struts2

在使用者進行註冊的時候,為了保證使用者名稱的唯一性,需要在使用者註冊時進行使用者名稱的驗證,這個使用AJAX實現無重新整理驗證是最合適的。 下面就是我的驗證原始碼,在程式碼中通過註釋講解用法。1.js