servlet技术--使用注解模拟用户登录实现页面跳转
阅读原文时间:2023年07月08日阅读:1

文章目录

1、servlet体系结构

servlet实质就是按servlet规范编写的Java类,可以处理web应用中的相关请求。

2、servlet技术特点

1、功能强大

  • 2、可移植性
  • 3、性能高效
  • 4、安全性高
  • 5、可扩展

3、servlet和jsp的区别

1、角色不同

  • 2、编程方法不同
  • 3、servlet需要编译后运行
  • 4、速度不同

4、servlet开发

(使用注解开发、简单啊、那个配置的还有修改配置文件、烦的一批。不过也好弄、没有注解方便、哈哈哈)

注解开发只需要在java类的上面加上这句话@WebServlet("/My"),括号里的内容自己命名、反斜杠一定要带上。前端怎样找到这个类就要用到这个括号里的内容。例如用from表单提交数据、这样写: <form action="My" method="post">

代码结构(使用的idea开发工具、maven项目)

前端三个页面
主页index

<%--
  Created by IntelliJ IDEA.
  User: 静小文
  Date: 2021/12/19
  Time: 22:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>

  <form action="My" method="post">
    姓名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <button type="submit">提交</button>
  </form>
  </body>
</html>

登录成功页面success.jsp

<%--
  Created by IntelliJ IDEA.
  User: 静小文
  Date: 2021/12/19
  Time: 22:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成功</title>
</head>
<body>
登录成功!!!
<a href="index.jsp">首页</a>

</body>
</html>

登录失败页面error.jsp

<%--
  Created by IntelliJ IDEA.
  User: 静小文
  Date: 2021/12/19
  Time: 22:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>错误页面</title>
</head>
<body>
登录失败!!!
<a href="index.jsp">首页</a>
</body>
</html>

servlet

package com.zheng;

import javax.servlet.RequestDispatcher;
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;

@WebServlet("/My")
public class MyServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置请求的编码,防止中文乱码
        request.setCharacterEncoding("UTF-8");
        String username = request.getParameter("username");//获取用户名
        String password = request.getParameter("password");//获取用户名

        if ("admin".equals(username) && "123".equals(password)) {
            //模拟数据库
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("success.jsp");//跳转登录成功页面
            requestDispatcher.forward(request, response);
        } else {
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("error.jsp");//跳转登录成功页面
            requestDispatcher.forward(request, response);
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

注意:通过doget方式提交、参数会在url地址栏中显示

测试
用户名和密码正确的情况


用户名和密码错误的情况

提示:如果IDEA中没有servlet选项,则在pom中添加以下依赖

        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>