JavaWeb-实现登录过滤Demo

1.Demo说明

实现说明:必须进行登录才能跳转到主页,否则跳转错误页面

2.代码

2.1Login.jsp简单实现登录表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String path=request.getContextPath();
%>
<form action="/Tian/SrevletLogin" method="post">
    <input type="text" name="UserName">
    <input type="submit">
</form>
</body>
</html>

2.2 错误界面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>错误</title>
</head>
<body>
<h3>没有权限,请登录</h3>

<p><a href="/Tian/Login.jsp">登录</a></p>
</body>
</html>

2.3 主页

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

</body>
</html>

2.4 Constant 

package Java.Util;

public class Constant {

    public  static  final String USER_SESSIOM="USER_SESSIOM";
}

2.5 .1 SrevletLogin

package Java.Servlet;

import Java.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 SrevletLogin extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("-----------------------------");
        String contextPath = req.getContextPath();
        String   UserName =  req.getParameter("UserName");
        if (UserName.equals("admin"))
        {
            req.getSession().setAttribute(Constant.USER_SESSIOM,req.getSession().getId());
            resp.sendRedirect(contextPath+"/sys/success.jsp");
        }else
        {
            resp.sendRedirect(contextPath+"/erroe.jsp");
        }
        System.out.println("-----------------------------");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

2.5.2 ServletLogou

package Java.Servlet;

import Java.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 ServletLogou extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String contextPath = req.getContextPath();
        Object user_session=req.getSession().getAttribute(Constant.USER_SESSIOM);

        if (user_session!=null)
        {
            req.getSession().removeAttribute(Constant.USER_SESSIOM);
            resp.sendRedirect(contextPath+"/Login.jsp");
        }
        else
        {
            resp.sendRedirect(contextPath+"/Login.jsp");
        }
    }

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

2.6 sysFilter 过滤器

package Java.Filter;

import Java.Util.Constant;
import com.sun.deploy.net.HttpRequest;

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

public class sysFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

        HttpServletRequest httpRequest =(HttpServletRequest)servletRequest;
        HttpServletResponse httpResponse =(HttpServletResponse)servletResponse;

        String path=httpRequest.getContextPath();

        Object UserSeeion= httpRequest.getSession().getAttribute(Constant.USER_SESSIOM);
        if (UserSeeion==null)
            httpResponse.sendRedirect(path+"/erroe.jsp");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}

3.Web.Xml



 <servlet>
    <servlet-name>SrevletLogin</servlet-name>
    <servlet-class>Java.Servlet.SrevletLogin</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>SrevletLogin</servlet-name>
    <url-pattern>/SrevletLogin</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>ServletLogou</servlet-name>
    <servlet-class>Java.Servlet.ServletLogou</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletLogou</servlet-name>
    <url-pattern>/ServletLogou</url-pattern>
  </servlet-mapping>


  <filter>
    <filter-name>sysFilter</filter-name>
    <filter-class>Java.Filter.sysFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>sysFilter</filter-name>
    <url-pattern>/sys/*</url-pattern>
  </filter-mapping>

4.项目结构

5.调试运行

登录界面

错误界面

主页

6.注意Url跳转路径,否则会跳转失败

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值