这个【Servlet实现用户登录】小项目,作为JavaWeb小项目系列的开篇,未来我会继续完善各个功能,直到可以真正作为一个Web项目(PS:希望这个坑可以填上,说来遗憾,现在已经大三了,人生也比较迷茫,希望可以通过考研改变自己吧。岁月蹉跎,大一学C++,大二学JavaSE的时候就对Java很感兴趣,也自己写了一个Swing窗口应用程序,大三学JavaEE也想做一个项目,但是可能时间不太多了,需要备战考研了),总之,对本次项目总结如下:
- 项目开发环境:
- 编译器:IDEA工具、服务器:Tomcat9、JDK版本:1.8
- 项目改进:
- 由于本次登录功能实现意为利用Jsp和Servlet技术实现一个简单登录验证,因此就先不连接数据库了,正常应该使用数据库存储用户信息
- 需要具备的知识:
- 对IDEA的使用具有一定了解
- JavaWeb入门
- 项目源码地址:
- 点我跳转GitHub仓库
- 点我跳转Gitee仓库
(4)【Module01】上右键【Open Module Settings】配置项目结构【Project Structure】,SDK和Modules
<%--
Created by IntelliJ IDEA.
User: Weiney
Date: 2022/12/06
Time: 23:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录系统
<%-- style属性text-align: center,使内容整体居中 --%>
<%-- 标题标签 --%>
Author:Weiney
欢迎登录本系统
<%-- 横线标签 --%>
<%-- 此时我们先在form表单提交目的路径用 # 占位,之后确定了处理的Servlet之后再填写 --%>
package pers.weiney.javaweb.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author Weiney
* @ToDo 处理登录的Servlet
* @create 2022-12-07 20:56
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
// 采用注解的方式配置LoginServlet 【@WebServlet("/LoginServlet")】
// extends继承HttpServlet,然后使用快捷键【Alt + Shift + S】,Override methods -> 重写doPost()方法
// 因为前端的登录from表单提交的是post方法体,因此重写doPost()方法
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.getParameter()方法,获取前端提交的参数
// getParameter()的参数尽量去前端的name属性去复制,不要自己写,容易出错
String username = request.getParameter("username");
String password = request.getParameter("password");
// 简单的验证逻辑,正常应该调用service层【MVC中的服务层】中的实现类进行数据查询验证
// 此处我们就先暂写一个普通逻辑
if ("Weiney".equals(username) && "123456".equals(password)) {
// 用户名和密码验证成功则登录成功,跳转到系统的主界面
// 没有携带数据【request.setAttribute("",)】,因此我们先使用重定向方法
// response.sendRedirect()的参数是【项目路径 + 资源路径】
// 项目路径可以用 request.getContextPath()动态获取
response.sendRedirect(request.getContextPath() + "/main.jsp");
} else {
// 用户名密码错误,跳转失败界面【重定向】
response.sendRedirect(request.getContextPath() + "/error.jsp");
}
}
}
接下来,在Web目录下创建两个jsp【用来登录成功跳转和失败跳转的页面】
<%--
Created by IntelliJ IDEA.
User: Weiney
Date: 2022/12/07
Time: 21:34
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录成功
<%-- 登录成功之后的跳转页面 --%>
Author:Weiney
欢迎您!成功登录本系统
<%--
Created by IntelliJ IDEA.
User: Weiney
Date: 2022/12/07
Time: 21:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录失败
Author:Weiney
<%-- 使用链接标签,用于跳转到登录界面,此处的【/index.jsp】可写可不写 --%>
<%-- 因为Tomcat服务器会默认打开名为index的文件作为启动页 --%>
用户名密码错误,点击我请重新登录
action= "${pageContext.request.contextPath}/LoginServlet"
至此,一个简单的登录功能就实现啦!下节预告【使用Session会话机制防止不登录直接跳转其他页面】
博主本人能力有限,如有错误,欢迎大家指正!
如果大家喜欢本篇博客的话,动手点点赞,谢谢大家,如果觉得以后可以用到的话请收藏关注一下吧谢谢大家