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

开发者学堂课程【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>

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

​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 >

上一篇:yum 安装nginx-php-mysql二进制


下一篇:iOS/Android/WAP 全兼容专题页面制作方法(二)