Struts项目中,检测用户名是否被占用/查询账户名称是否被占用/查询账户名称是否已被注册/检查用户名是否被注册
生活随笔
收集整理的這篇文章主要介紹了
Struts项目中,检测用户名是否被占用/查询账户名称是否被占用/查询账户名称是否已被注册/检查用户名是否被注册
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在客戶端無法檢測注冊用戶名是否被占用,這需要查詢數據庫,所以是服務器端負責這塊。
實現思路大致描述:
注冊表單中添加自動檢測用戶名是否被占用的功能,其實就是利用 ajax 向服務器發送請求,并帶著用戶輸入的用戶名過去,在服務器端可以調用 DAO 的 findUser(String userName)方法,去數據庫查詢獲取數據,如果可以取到說明已經被占用了,如果無法取到則說明沒有被占用。不過 ajax 的功能只是獲取到服務器發送回來的 json 字符串而已,這個字符串會自動轉換成 js 對象,該對象其中一個屬性是布爾類型的,如果是 true 說明沒有被占用,false 說明被占用。
注冊頁面代碼如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title><script type="text/javascript" src="js/jquery-3.5.1.js"></script><script type="text/javascript">$(function () {$("#validate").bind("click", function () {var accountName = $("#accountName").val();$.ajax({"url": "validate.action?accountName=" + accountName,"type": "GET","dateType": "json","success": function (data) {if (data.ok) {$("#validate_info").text("可以使用").css("color", "green");} else {$("#validate_info").text("已經被占用").css("color", "red");}}});});});</script> </head> <body> <form id="" action="" method=""><table cellSpacing="0" cellPadding="0"width="100%" border="0"><tbody><tr class="header"><td colSpan="3">用戶登錄</td></tr></tbody><tbody><tr><td width="20%"><b>賬戶名稱 </b></td><td valign="middle" width="20%"><input id="accountName" type="text" name="accountName"/><a href="javascript:void(0);" id="validate">檢測賬戶名稱</a></td><td><span id="validate_info"> </span></td></tr><tr><td class="altbg1" width="20%"><b>真實姓名</b></td><td class="altbg2"><input type="text" name="name"/></td><td><span style="color: red"></span></td></tr><tr><td class="altbg1" width="20%"><b>密碼 </b></td><td class="altbg2"><input type="password" name="password"/></td><td><span></span></td></tr></tbody></table><br/><center><input class="button" type="reset" value="重置" name="settingsubmit"/><input class="button" type="submit" value="提交" name="settingsubmit"/></center> </form> </body> </html>struts.xml 的配置:
<!--轉發到注冊頁面--><action name="registerform"><result name="success">/WEB-INF/jsp/registerform.jsp</result></action><!--檢測賬戶名稱是否存在--><action name="validate" class="priv.lwx.struts.pms.action.AccountNameValidateAction"><result name="success" type="json"></result></action>FindUserAction 的代碼如下:
package priv.lwx.struts.pms.action;import priv.lwx.struts.pms.dao.UserDAO;/*** description** @author liaowenxiong* @date 2022/2/22 14:38*/public class FindUserAction extends BaseAction {// input,接收客戶端傳過來的賬戶名稱private String accountName;// output,告訴前端賬戶名稱是否存在private boolean ok;private UserDAO userDAO = new UserDAO();public String execute() {System.out.println(accountName);if (accountName != null) {ok = userDAO.findUser(accountName);}return "success";}public String getAccountName() {return accountName;}public void setAccountName(String accountName) {this.accountName = accountName;}public boolean isOk() {return ok;}public void setOk(boolean ok) {this.ok = ok;} }擴展:
客戶端驗證即表單 JS 驗證只是用來檢測用戶輸入的數據是否符合一定的規范。不過大家要知道,JS 表單檢測的代碼是可以被用戶修改掉的,也就是說用戶可以避過表單驗證去訪問服務器中的應用,因此在服務器端也要進行同樣的檢測才行。如果是在 Struts2 的應用中,Action 組件接收到參數后在調用 DAO 前就要對參數的格式進行必要的檢測了。
總結
以上是生活随笔為你收集整理的Struts项目中,检测用户名是否被占用/查询账户名称是否被占用/查询账户名称是否已被注册/检查用户名是否被注册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBL新款音箱配双语音助手 约售2400
- 下一篇: 消息称小米自研手机 / 汽车系统及芯片将