登录功能代码实现 | 学习笔记

简介: 快速学习登录功能代码实现

开发者学堂课程【Java Web项目实战1:注册登录、客户关系管理系统登录功能代码实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/39/detail/907


登录功能代码实现

 

登录功能

LoginServlet. -->

1.获取表单数据,封装到 user 中

2.调用 service 的 login() 方法, 传递 form 过去!

3.如果 service 的 login() 方法,没有抛出异常!返回一-个User对象!

4.有异常:获取异常信息,保存到 request 域, 保存 form,转发到 login.jsp

5.没异常:保存返回的 user 对象到 session 中! ! !重定向到 welcome.jsp (显示当前用户信息! )

UserService#login()

public User login(User form) {...}

1.使用用户名查询数据库,得到返回的User

>返回为 null,抛出异常,异常信息为(用户名不存在)

>返回不为 null,获取查询出来的 user 的 password 与 form 的 password 进行比较!如果不同:抛出异常(密码错误! ) \

>如果相同,返回查询结果!

UserDao

1.通过用户名查询用户! (已经存在了,不用再写了! )

<Body>

<h1>登录</h1>

<p style="color: red; font-weight: 900">$ {msg }</p>

<8--$ {pageContext .request .contextPath }/RegistServlet --号><form action="<c:ur1 value= '/RegistServlet'/>" method= "post ">用户名: <input type= "text" name= "username" value= "$ {user . username } "/><br/>

密码: <input type= "passvord" name= "passvord" value= "S {user.password } "/><bx/>

<input type= "submit" value="登录"/>

</form>

</body>

</html>

3.png

import java.io. IOException; .

/**

* UserServlet 层

* Cauthor Cxf

*

*/

pablic class LoginServlet extends HttpServlet {

public void doPost (HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request . setCharacterEncoding ("utf-8") ;//请求编码(POST)

response . setContentType ("text/ html; charset=utf-8") ; //响应编码

//依赖 UserService

UserService userService = new UserService ();

/*

*1.封装表单数据到 user form 中

*2.调用 service 的 1ogin() 方法,得到返回的 user user 对象。

>如果抛出异常:获取异常信息,保存到 request 域,再保存 form,转发到1ogin.jsp

>如果没有异常:保存返回值到 session 中,重定向到 welcome.japUser form = CommonUtils. toBean (request .getParameterMap(), User.class) ;

try {

User user

userService .login (form) ;

request .getSession() . setAttribute ("sessionUser", user) ;

response. sendRedirect (

request. getContextPath() + "/user/welcome .jsp");|

} catch (Use rException e) {

request.setAttribute ("msg", e .getMessage()) ;

request . setAttribute ("user", form) ;

request .getReque stDispatcher ("/user/1ogin.jsp") . forward (request, response) ; .

}

}

*注册功能

@param user

* @throws UserException

*/

public void regist (User user) throws UserException {

/*

* 1.使用用户名去查询,如果返回 null,完成添加

* 2.如果返回的不是 null,抛出异常!

*/

User_ user = userDao. findByUsername (user .getUsername());

if(_ user != nall) throw new UserException("用户名”+ user.getUsername() + ",已被注册过了! ");

userDao. add (user) ;

}

public User login(User form) {

// TODO Auto-generated method stub

return nu11;

}

*登录功能

* @param form

* @return

* @throws UserException

*/

pablic User login (User form) throws UserException {

/*

* 1.使用 form 中的 eername 进行查询,得到 user user*/User user = userDao. findByUsername (form. getUsername ()) ;

/*

* 2.如果返回 null,说明用户名不存在,抛出异常,异常信息为“用户名不存在"

*/if(user == nul1) throw new UserException ("用户名不存在! ");

/*

* 3.比较 usex 的 password 和 form 的 password, 如果不同,抛出异常,异常信息为“密码错误!”

*/

if (!form. getPassword() . equals (user .getPassword())) {

<meta http- equiv= "pragma" content= "no-cache ">

<meta http-equiv= "cache -control”content= "no-cache ">

<meta http-equiv= "expires" content= "0">

<meta http-equiv= "keyvords" content= "keyvord1 , keyword2 , keyvord3"><meta http-equiv= "description" content= "This is my page ">

<!- -

<link rel="stylesheet" type="text/css" href="styles.css">

-.->

</head>

<body>

<h1>欢迎登录本系统</h1>

<C: choose>

<c:when test="$ { empty sessi onScope sessionUser 》">浓 ! </ C :when>

<c : otherwise>

${sessionScope sessionUser }

</ C: otherwi se>

</ C: choose></body>

</html >

相关文章
|
5月前
|
前端开发 JavaScript API
微搭低代码实现登录注册功能
微搭低代码实现登录注册功能
|
5月前
|
存储 Java C#
使用Python实现简易的用户登录验证功能
这篇文章将向你展示如何使用Python语言进行程序设计,实现一个简易的用户登录验证功能。 该功能允许用户输入由字母和数字任意组合而成的用户名和密码,并通过while循环不断地提示用户输入,直到凭证正确为止。所有凭证信息将被存储在一个字典中,以便进行匹配验证。
|
安全 前端开发 数据安全/隐私保护
登录的功能的实现和登录功能的拦截信息(课时十六)
登录的功能的实现和登录功能的拦截信息(课时十六)
61 0
|
5月前
|
Java 数据库连接 数据库
用户登录功能实现案例
用户登录功能实现案例
62 0
|
存储 NoSQL Redis
【面试题】:说一下登录模块的思路以及登录的优化
说一下登录模块的思路以及登录的优化
192 1
|
存储 数据安全/隐私保护 开发者
小白必看系列之图书管理系统-登录和注册功能示例代码
小白必看系列之图书管理系统-登录和注册功能示例代码
130 1
|
移动开发 算法 Java
50行代码实现网站服务器 2
50行代码实现网站服务器 2
79 0
50行代码实现网站服务器3
50行代码实现网站服务器3
71 0
|
Java 测试技术 数据安全/隐私保护
用Java代码实现学生管理系统(可实现用户登录注册功能)
用Java代码实现学生管理系统(可实现用户登录注册功能)
560 0
|
存储 SQL JSON
用户登录设计及免密登录的通用思路
完整的用户登录设计及免密登录的通用思路。涉及到了SQL表单创建、Mapper接口、Service接口、Controller接口。其中还讲述了如何统一的响应体,保持前后端友好开发;以及持久化token。
657 0