JavaWeb_实现用户页面跳转

JavaWeb_实现用户页面跳转

1.登录界面(Login.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>登录</h1>
<form action="/servlet/login" method="post">
    <input type="text" name="username">
    <input type="submit">
</form>
</body>
</html>

2.登录请求(LoginServlet)

package com.king.servlet;

import com.king.util.Constant;

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 {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取前端请求的参数
        String username = req.getParameter("username");
        if (username.equals("admin")){
            //登录成功
            req.getSession().setAttribute(Constant.USER_SESSION,req.getSession().getId());
            resp.sendRedirect("/sys/success.jsp");
        }else {
            //登录失败
            resp.sendRedirect("/error.jsp");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

3.成功页面(success.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--<%--%>
<%--    Object userSession = request.getSession().getAttribute("USER_SESSION");--%>
<%--    if (userSession==null){--%>
<%--        response.sendRedirect("/Login.jsp");--%>
<%--    }--%>
<%--%>--%>
<h1>主页</h1>
<p><a href="/servlet/logout">注销</a></p>
</body>
</html>

4.失败页面(error.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>错误</h1>
<h3>没有权限,用户名错误</h3>
<a href="/Login.jsp">返回登录页面</a>
</body>
</html>

5.过滤器(SysFilter)

package com.king.filter;

import com.king.util.Constant;

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

public class SysFilter implements Filter {
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;

        if (request.getSession().getAttribute(Constant.USER_SESSION)==null){
            response.sendRedirect("/error.jsp");
        }

        chain.doFilter(request,response);
    }

    public void destroy() {

    }
}

6.权限请求(LogoutServlet)

package com.king.servlet;

import com.king.util.Constant;

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

public class LogoutServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Object user_session = req.getSession().getAttribute(Constant.USER_SESSION);
        if (user_session!=null){
            req.getSession().removeAttribute(Constant.USER_SESSION);
            resp.sendRedirect("/Login.jsp");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

7.重置常量——USER_SESSION

package com.king.util;

public class Constant {
    public final static String USER_SESSION = "USER_SESSION";
}

8.配置servlet和filter

 <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>com.king.servlet.LoginServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/servlet/login</url-pattern>
        </servlet-mapping>

        <servlet>
            <servlet-name>Logoutervlet</servlet-name>
            <servlet-class>com.king.servlet.LogoutServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>Logoutervlet</servlet-name>
            <url-pattern>/servlet/logout</url-pattern>
        </servlet-mapping>

        <filter>
            <filter-name>SysFilter</filter-name>
            <filter-class>com.king.filter.SysFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>SysFilter</filter-name>
            <url-pattern>/sys/*</url-pattern>
        </filter-mapping>
  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现一个基本的登录页面,需要以下步骤: 1. 创建一个JSP页面,命名为login.jsp,用于显示登录表单和处理用户提交的表单数据。 2. 在login.jsp中添加一个表单,包含用户名和密码的输入框,以及一个提交按钮。 3. 在表单中设定action属性为一个servlet的URL,用于处理表单数据的提交。 4. 创建一个Servlet,命名为LoginServlet,用于处理表单数据,验证用户身份,以及跳转到登录成功或失败页面。 5. 在LoginServlet中,获取表单提交的用户名和密码,与数据库中存储的用户信息进行比对,如果验证成功,则将用户信息存储在Session中,并跳转到登录成功页面;否则,跳转到登录失败页面。 6. 创建登录成功和失败的页面,分别命名为login_success.jsp和login_failure.jsp。 7. 在登录成功页面中,显示登录成功的提示信息,并提供用户注销的链接。 8. 在登录失败页面中,显示登录失败的提示信息,并提供用户重新登录的链接。 以下是一个简单的示例代码: login.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <h1>Login Page</h1> <form action="LoginServlet" method="post"> <p> <label>Username:</label> <input type="text" name="username"> </p> <p> <label>Password:</label> <input type="password" name="password"> </p> <p> <input type="submit" value="Login"> </p> </form> </body> </html> ``` LoginServlet.java ```java package com.example.servlet; 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; import javax.servlet.http.HttpSession; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; 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)) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("login_success.jsp"); } else { response.sendRedirect("login_failure.jsp"); } } } ``` login_success.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Success</title> </head> <body> <h1>Login Success</h1> <p>Welcome, <%= session.getAttribute("username") %>!</p> <p><a href="LogoutServlet">Logout</a></p> </body> </html> ``` login_failure.jsp ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Failure</title> </head> <body> <h1>Login Failure</h1> <p>Invalid username or password.</p> <p><a href="login.jsp">Login Again</a></p> </body> </html> ``` 以上代码仅供参考,实际应用中还需要对用户输入的数据进行安全性验证,以及对数据库的连接进行优化等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值