Java Spring登錄練習(xí)詳解
編寫(xiě)Massage類(lèi)和User類(lèi)(方便后面使用)
- Massage類(lèi):主要用來(lái)表示用戶(hù)登錄情況的反饋
- User類(lèi):作為查詢(xún)到的用戶(hù)模板
//---------------------Massage-----------------------
public class Massage {
//登錄成功狀態(tài)碼和提示信息
//此處省略set/get/toString/構(gòu)造器這些方法
private int logincode;
private String loginmsg;
}
//-------------------User.java-----------------------
public class User{
//用戶(hù)名和密碼此處省略set/get/toString/構(gòu)造器這些方法
private String uname;
private String upsw;
}
此處省略set/get/toString/構(gòu)造器這些方法,記得生成一下~
三層內(nèi)容
- UserController.java
- UserService.java
- UserDao.java
//-----------------UserDao.java----------------------
@Repository
public class LoginDao {
//定義用戶(hù)名和密碼
private final String UNAME="admin";
private final String UPSW="admin";
//通過(guò)用戶(hù)名查詢(xún)
public User bynameselectpsw(String name){
//判讀是否是空值
if(name!=null && name.length()!=0 && UNAME.equals(name)){
User user=new User();
user.setUname(UNAME);
user.setUpsw(UPSW);
return user;
}
return null;
}
}
//-----------------UserService.java------------------
@Service
public class LoginService {
@Autowired
LoginDao dao;
//編寫(xiě)邏輯層對(duì)密碼和用戶(hù)名的判斷
public Massage loginCheck(String uname,String psw){
Massage msg=new Massage();
//判斷密碼和賬號(hào)是否為空
if(uname==null || uname.length()==0){
msg.setLoginmsg("用戶(hù)名不能為空");
msg.setLogincode(0);
return msg;
}
if(psw==null || psw.length()==0){
msg.setLoginmsg("密碼不能為空");
msg.setLogincode(0);
return msg;
}
//判斷是否有此用戶(hù)
User user=dao.bynameselectpsw(uname);
System.out.println(user);
if(user==null){
msg.setLoginmsg("無(wú)此用戶(hù)~(yú)");
msg.setLogincode(0);
return msg;
}
//對(duì)密碼進(jìn)行判斷
if(user.getUpsw()!=psw){
msg.setLoginmsg("密碼不正確~");
msg.setLogincode(0);
return msg;
}
//以上都沒(méi)觸發(fā)則登錄成功
msg.setLoginmsg("登錄成功~");
msg.setLogincode(1);
return msg;
}
}
//-----------------UserController.java---------------
@Controller
public class LoginController {
@Autowired
LoginService service;
public Massage controller(String name, String psw){
Massage msg=service.loginCheck(name,psw);
return msg;
}
}
以上便是主要內(nèi)容了,就差連接數(shù)據(jù)庫(kù)與前端頁(yè)面
編寫(xiě)測(cè)試文件
public class LoginTest {
@Test
public void test(){
//獲取核心配置文件
ApplicationContext app=new ClassPathXmlApplicationContext("spring.xml");
//獲取Controller對(duì)象
LoginController lg= app.getBean("loginController",LoginController.class);
// Massage msg=lg.controller("admin","admin");
Massage msg=lg.controller("","");
System.out.println(msg);
}
}
結(jié)果展示:密碼和賬號(hào)為空時(shí)

結(jié)果展示:密碼為空時(shí)

結(jié)果展示:登陸成功~

pom.xml和spring.xml配置
<!-- 添加Spring框架的核心依賴(lài) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
一定要開(kāi)啟自動(dòng)掃描:在配置文件spring.xml中添加語(yǔ)句:
<context:component-scan base-package="com.yjxxt"></context:component-scan>
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Netty分布式高性能工具類(lèi)同線程下回收對(duì)象解析
這篇文章主要為大家介紹了Netty分布式高性能工具類(lèi)同線程下回收對(duì)象解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java Socket編程(五) 簡(jiǎn)單的WEB服務(wù)器
Java Socket編程(五) 簡(jiǎn)單的WEB服務(wù)器...2006-12-12
SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式
這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
springboot如何使用thymeleaf完成頁(yè)面緩存
這篇文章主要介紹了springboot如何使用thymeleaf完成頁(yè)面緩存,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
在SpringBoot中無(wú)縫整合Dubbo的實(shí)現(xiàn)過(guò)程
微服務(wù)架構(gòu)已經(jīng)成為現(xiàn)代應(yīng)用開(kāi)發(fā)的熱門(mén)趨勢(shì),而Dubbo作為一款強(qiáng)大的分布式服務(wù)框架,與Spring?Boot的結(jié)合是構(gòu)建高性能微服務(wù)應(yīng)用的理想選擇,本文將詳細(xì)介紹如何在SpringBoot中無(wú)縫整合Dubbo,需要的朋友可以參考下2024-01-01
Java基于余弦方法實(shí)現(xiàn)的計(jì)算相似度算法示例
這篇文章主要介紹了Java基于余弦方法實(shí)現(xiàn)的計(jì)算相似度算法,簡(jiǎn)單說(shuō)明了余弦相似性的概念、原理并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)余弦相似性算法的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08

