前后端实现网站登录注册功能

实现网站登录注册:
这是
这是网站的登录功能
登录后的页面效果是这样的
在这里插入图片描述
先分享一下我碰到的问题在这里插入图片描述
登录时,跳转的页面不正确(也即输入用户名之后数据传不到后台的问题)
在这里插入图片描述
原因是在写UserDaoImpl类时,没有return user,并且没有重写insertUser方法
在这里插入图片描述

public class UserDaoImpl extends BaseDao<User> implements UserDao {
    @Override
    public User findByUserName(String userName) {
        String sql ="select user_id userId , user_name userName, user_pwd userPwd ,email from t_user where user_name = ?";
        User user = getBean(User.class, sql, userName);

        return user;
    }

    @Override
    public int insertUser(User user) {
        String sql ="insert into t_user values (DEFAULT,?,?,?)";
        return update(sql,user.getUserName(),user.getUserPwd(),user.getEmail());
    }
}

UserDao的实现类代码如上所示,它是要继承BaseDao,并且把BaseDao的泛型指定为User类,并且实现了UserDao接口,实现了其中findByUserName和insertUser方法。

改正后
出现如下错误
在这里插入图片描述
在这里插入图片描述
要把resources文件设置为Resource root
方法为右击resources,出现下拉框,选择
Mark Directory as - > Resource root
将其标记为Resource root文件,这样就不会报空指针异常错误。

第三个错误
在这里插入图片描述
用于加密的明文不可为空,是因为前端的login.html中的用户密码片段中的name="passWord"的passWord和loginServlet中的req.getParameter的参数不相同,所以参数传不进来而报错。

在这里插入图片描述
在这里插入图片描述
也即
(1)java.lang.RuntimeException: 用于加密的明文不可为空
at com.atguigu.utils.MD5Util.encode(MD5Util.java:18)
at com.atguigu.controller.loginServlet.service(loginServlet.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)

(2)报这个错是因为login.html中的输入密码那边的name="passWord"和loginServlet中的
String userPwd = req.getParameter(“userPwd”);参数不对应;
要解决此问题,您应该检查代码,并确保为加密提供的明文不是空的或null。您还应该检查encode方法的输入参数,并确保它们正确映射到登录表单字段。

最后登录成功

在这里插入图片描述
注册阶段
提交响应后无法调用sendRedirect()
在这里插入图片描述
出现错误:
在这里插入图片描述
原因是
要用resp.setContextType(“text/html;charset=UTF-8”);来告诉浏览器传输什么形式的网页。
这里的text/html是传输文本形式的网页。

最后成功注册

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值