使用Servlet实现简单的网页登录功能

介绍:

Servlet 是 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

学习内容:

1、 编写Servlet程序
2、web.xml 中去配置 servlet
3、简单实现登录功能

具体步骤:

1.创建web工程,目录如下
在这里插入图片描述
2.创建一个登录页面,一个登陆成功页面放在web目录下

在这里插入图片描述
登录界面代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <form action="http://localhost:8080/demo_war_exploded/loginServlet"  method="post">
<span class="errorMsg">

    ${empty requestScope.Msg? "请输入用户名和密码":requestScope.Msg}
</span><br>
      用户名:<input type="text" name="username"><br>
      密码:<input type="password"  name="password"><br>
      <input type="submit" value="登录">

  </form>
</body>
</html>

3.创建LoginServlet类,继承HttpServlet
LoginServlet.java
因为这里只是简单介绍一下servlet用法,所以把用户名和密码是写的固定的。

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class LoginServlet extends HttpServlet {

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置请求发来的字符集,避免乱码
        req.setCharacterEncoding("UTF-8");
        //获取用户名和密码
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        //判断用户名密码是否正确(这里只做简单讲解)
          if(username.equals("张三")&&password.equals("123456")){
              //如果用户名密码正确,则请求转发到登录成功页面
              req.getRequestDispatcher("success.html").forward(req,resp);
          }else{
              //否则重定向到登录界面,并提示用户用户名或密码错误
              req.setAttribute("Msg","用户名或密码错误");
              req.getRequestDispatcher("index.jsp").forward(req,resp);
          }
    }
}

4.在web.xml文件中配置Servlet
我们配置的时候只需要添加Servlet部分代码,其他的在创建时已经自动生成。Servlet-name 是要配置的类名,Servlet-class是类的全类名(不懂的朋友,在可以直接写类名,系统会提示),最重要的:url-pattern标签配置访问地址 ,/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径, /hello 表示地址为:http://ip:port/工程路径/hello 。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
    </servlet-mapping>
</web-app>

实现结果

运行程序,输入正确的用户名密码登陆成功后,会跳转到登录成功页面

在这里插入图片描述
在这里插入图片描述
输入错误的用户名密码,会跳转回登录页面,并提示用户“用户名或密码错误”
在这里插入图片描述
在这里插入图片描述

小结:

通过今天的学习,我们需要掌握Javaweb工程的创建以及实现了一个简单的Servlet程序,并学会在web.xml文件中配置Servlet类。可以实现简单的登录,学习了请求转发的使用,最后了解了如何设置字符集。

好的,以下是一个简单的基于servlet的登陆界面实现: 首先,我们需要创建一个 HTML 页面作为登陆界面,包含用户名和密码的输入框以及提交按钮。可以参考以下代码: ```html <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login Page</h2> <form method="post" action="login"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Login"> </form> </body> </html> ``` 接下来,我们需要创建一个 Java Servlet 来处理用户提交的表单数据并验证用户身份。可以参考以下代码: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; public LoginServlet() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 进行用户身份验证 if("admin".equals(username) && "admin123".equals(password)) { // 验证成功,重定向到欢迎页面 response.sendRedirect("welcome.jsp"); } else { // 验证失败,返回登陆页面并显示错误信息 request.setAttribute("errorMessage", "Invalid username or password"); request.getRequestDispatcher("login.jsp").forward(request, response); } } } ``` 在上述代码中,我们首先通过 `request.getParameter()` 方法获取到用户提交的用户名和密码。然后,我们进行用户身份验证,如果验证成功,则使用 `response.sendRedirect()` 方法重定向到欢迎页面;如果验证失败,则使用 `request.getRequestDispatcher()` 方法返回到登陆页面并在页面上显示错误信息。 最后,我们需要创建一个欢迎页面作为登陆成功后的页面。可以参考以下代码: ```html <!DOCTYPE html> <html> <head> <title>Welcome Page</title> </head> <body> <h2>Welcome, admin!</h2> <p>You have successfully logged in.</p> </body> </html> ``` 将以上代码保存为 `login.jsp` 和 `welcome.jsp` 文件,并将它们放在 Web 应用程序的根目录下的 `WEB-INF` 文件夹中。接着,我们需要在 `web.xml` 文件中配置 Servlet 和 JSP 页面的映射关系。可以参考以下代码: ```xml <web-app> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app> ``` 在上述代码中,我们首先定义了一个名为 `LoginServlet` 的 Servlet,并将它映射到路径 `/login`。然后,在 `welcome-file-list` 中定义了默认的欢迎页面为 `login.jsp`。 现在,我们可以部署和运行这个 Web 应用程序,并通过浏览器访问登陆页面,输入正确的用户名和密码后,将会跳转到欢迎页面。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr_树先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值