<input type=“text” name=“username” class=“form-control” id=“username”
placeholder=“请输入用户名”>
UserServlet页面获取该请求
UserServlet -->userLogin
**获取数据
调用业务层功能
成功session当中存放用户信息,重定向到首页
失败向request的session当中失败信息,转发到登录页面**
// userLogin
public String userLogin(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
// 获取用户数据(账户/密码)
User user = new User();
MyBeanUtils.populate(user, request.getParameterMap());// 遍历表单数据将表达上对应的值放入到user对象当中
// 调用业务层登录功能
UserService userService = new UserServiceImpl();
User user02 = null;
// Alt + Shift + z 抛出异常
try {
// 在daoimpl要实现该语句select * from user where username = ? and password = ?
user02 = userService.userLogin(user);// 返回登录的用户
// 用户登录成功,将登录成功对应的用户的user02对象放入到session作用域当中
request.getSession().setAttribute(“loginUser”, user02);
response.sendRedirect(“/store_v5/index.jsp”);
return null;
} catch (Exception e) {
// 用户登录失败
String message = e.getMessage();// 获取到对应失败的信息
System.out.println(message);
//向 request放入登录失败的信息
request.setAttribute(“msg”, message);
return “/js/login.jsp”;
}
service层
自定义的异常向Servlet传递一些2种数据(密码不存在,用户未激活)
package cn.itzheng.store.service;
import java.sql.SQLException;
import cn.itzheng.store.domain.User;
public interface UserService {
void userRegist(User user) throws SQLException;
boolean userActive(String code) throws SQLException;
User userLogin(User user) throws SQLException;
}
serviceimpl
@Override
public User userLogin(User user) throws SQLException {
// 此处:可以利用异常在模块当中传递一些数据
UserDao userDao = new UserDaoImpl();
// select * from user where username = ? and password =?
User uu = userDao.userLogin(user);
if (null == uu) {
//在这里抛出对应的异常让其在Servlet里面捕获到对应的异常,并反馈到对应的页面上去
throw new RuntimeException(“密码有误!”);
} else if (uu.getState() == 0) {
throw new RuntimeException(“用户未激活!”);
} else {
return uu;
}
}
dao层
package cn.itzheng.store.dao;
import java.sql.SQLException;
import cn.itzheng.store.domain.User;
public interface UserDao {
void userRegist(User user) throws SQLException;
User userActive(String code) throws SQLException;
void updateUser(User user) throws SQLException;
User userLogin(User user) throws SQLException;
}
daoimpl
@Override
public User userLogin(User user) throws SQLException {
// TODO Auto-generated method stub
String sql = “select * from user where username = ? and password = ?”;
QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
return qr.query(sql, new BeanHandler(User.class), user.getUsername(), user.getPassword());// 将查询到的内容反放到BeanHandler对象当中且其泛型是User
}
/jsp/index.jsp当获取到用户的一些信息
引入jstl标签库
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<c:if test=“${empty loginUser}”>
- 登录
- 注册
</c:if>
<c:if test=“${not empty loginUser}”>
- 欢迎${loginUser.username}
- 退出
- 购物车
- 我的订单
</c:if>
loginUser.username这里虽然只是username但是执行的是getusername
原理:向服务端发送请求让session失效
1、准备工作:
/jsp/index.jsp 修改链接
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽
端)**
最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽