java实现前台用户的登录_前台开发——处理用户的登录

在导航栏的header.jsp中的登录按钮进行处理:

登录

user_login.jsp给form表单一个链接的地址:

在servlet层中加入一个servlet类,命名为:UserLoginServlet.java

定义两个变量:

String ue=request.getParameter("ue");

String password=request.getParameter("password");

在UserDao.java写入查询的语句,一个是根据用户名(username)查询,另一个是根据邮箱(email)查询:

public User selectByUsernamePassword(String username,String password) throwsSQLException {

QueryRunner r= newQueryRunner(DBUtil.getDataSource());

String sql="select * from user where username=? and password=?";return r.query(sql, new BeanHandler(User.class),username,password);

}public User selectByEmailPassword(String email,String password) throwsSQLException {

QueryRunner r= newQueryRunner(DBUtil.getDataSource());

String sql="select * from user where email=? and password=?";return r.query(sql, new BeanHandler(User.class), email,password);

}

在UserService.java中写入根据UserDao层查询出来的结果进行一个处理:

publicUser login(String ue,String password) {

User user=null;try{

user=uDao.selectByUsernamePassword(ue, password);

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}if(user!=null) {returnuser;

}try{

user=uDao.selectByEmailPassword(ue, password);

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}if(user!=null)

{returnuser;

}return null;

}

UserLoginServlrt.java中通过由service层中处理的结果从而获取数据,当登录失败时候的结果:

packagecom.guiyan.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.guiyan.model.User;importcom.guiyan.service.UserService;/*** Servlet implementation class UserLoginServlet*/@WebServlet("/user_login")public class UserLoginServlet extendsHttpServlet {private UserService uService=newUserService();protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String ue=request.getParameter("ue");

String password=request.getParameter("password");

User user=uService.login(ue, password);if(user==null) {

request.setAttribute("failMsg", "用户名、邮箱或者密码错误,请重新登录!!!");

request.getRequestDispatcher("/user_login.jsp").forward(request, response);

}

}

}

数据库里的内容:

df9cb9db1b043e4c801d97b5161d8f71.png

其登录失败的效果图:

0e834dfe87abd24cd80a97c60a17a763.gif

上图是登录失败的结果

处理登录成功后跳转到个人中心

最终效果:

862ac1d256c1c5a1aede51c17acbc179.gif

UserLoginServlet.java进行登录成功的处理:

packagecom.guiyan.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.guiyan.model.User;importcom.guiyan.service.UserService;/*** Servlet implementation class UserLoginServlet*/@WebServlet("/user_login")public class UserLoginServlet extendsHttpServlet {private UserService uService = newUserService();/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

String ue= request.getParameter("ue");

String password= request.getParameter("password");

User user=uService.login(ue, password);if(user==null) {

request.setAttribute("failMsg", "用户名、邮箱或者密码错误,请重新登录!!!");

request.getRequestDispatcher("/user_login.jsp").forward(request, response);

}else{

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

request.getRequestDispatcher("/user_center.jsp").forward(request, response);

}

}

}

user_center.jsp的创建:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

8

9

个人中心

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

79

80

81

82

83

84

85

86

87

88

89

90

91

user_center.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值