跳过登陆页面直接访问该jsp文件了,这样不好,请问大家如何避免这种问题?
以下为解决方式:
用session。 一般用户登陆信息都存在session中。
我给2中解决方式
(1)如果需要登陆验证才能访问的页面少的话可以通过include文件方式。
把下面代码保存文件名字为checksession.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%
if(session.getAttribute("userinfo")==null){
//用户没有登陆
response.sendRedirect("/login.jsp");
}
%>
//把需要登陆才能访问的页面中包含这个文件。
(2)如果需要登陆验证的页面多的话建议采用filter.
package com.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/*
*TestFilter 在web.xml中配置说明
*
*<filter>
* <filter-name>TestFilter</filter-name>
* <filter-class>com.filter.TestFilter</filter-class>
* </filter>
*配置需要经过login.jsp登陆过才能访问的区域
*目前配置方式仅仅是在用户访问product.jsp的时候才走过滤器,可以配置/*,/user/*等。
* <filter-mapping>
* <filter-name>TestFilter</filter-name>
* <url-pattern>/product.jsp</url-pattern>
* </filter-mapping>
* 韩卫召
*/
public class TestFilter implements Filter {
public void destroy() {
//过滤器销毁,一般是释放资源
}
/**
* 韩卫召
* 某些url需要登陆才能访问(session验证过滤器)
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
HttpSession session=request.getSession();
//userinfo,需要通过login.jsp 登陆后向session中写入用户信息,标示用户已经登陆
if(session.getAttribute("userinfo")==null){
String errors = "请先登陆,再访问此服务!";
request.setAttribute("errors", errors);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else{
arg2.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
//初始化操作,读取web.xml中过滤器配置的初始化参数,满足你提的要求不用此方法
}
}
分享到:
相关推荐
### JAVA过滤器标准代码解析与应用 在Java Web开发中,过滤器(Filter)是一种用于拦截请求和响应的重要机制,可以实现对用户请求的预处理和后处理,以及对响应的处理。本文将深入解析“JAVA过滤器标准代码”,探讨...
JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器JAVA过滤器 过滤器
java过滤器java过滤器java过滤器java过滤器
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。过滤器允许我们在请求被发送到目标资源(如Servlet、JSP页面)之前或之后进行预处理和后处理。在这个场景中,...
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。在ACCP课程中,这个“accp java过滤器 PPT”很可能是为了帮助学习者深入理解如何在Web应用程序中有效地使用...
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。过滤器允许我们在数据处理前后插入自定义逻辑,对请求和响应进行拦截、修改或增强。本教程将深入讲解Java过滤...
首先,让我们了解一下Java过滤器的基础知识。在Java Servlet规范中,Filter接口定义了过滤器的行为。一个过滤器可以通过实现`doFilter()`方法来拦截请求和响应,并对其进行处理。通过在web.xml配置文件中定义过滤器...
在给定的文件中,提到了四个有用的Java过滤器实例,分别是: 1. **使浏览器不缓存页面的过滤器**: 这个过滤器的目的是防止用户浏览器缓存页面,确保每次请求都能获取服务器最新的内容。它通过设置HTTP响应头来...
外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免!...外网可能会被攻击,简单的处理可以避免!...
Java过滤器,全称为Servlet Filter,在Java Web开发中扮演着重要的角色。它是Java Servlet API的一部分,主要用于在HTTP请求被实际处理之前或者之后进行拦截、修改或增强。通过使用过滤器,开发者可以实现诸如数据...
java过滤器-CharsetAllEncodingFilter.java 及 web.xml的配置
Java 过滤器详解 Java 过滤器是一种特殊的Java类,用于对HTTP请求和响应进行过滤和处理。下面我们将详细介绍五个有用的过滤器,每个过滤器都有其特定的作用和实现方式。 一、使浏览器不缓存页面的过滤器 这个过滤...
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。过滤器允许开发者在请求被实际处理之前或者响应被发送到客户端之后进行拦截和处理,实现诸如数据校验、权限...
对项目中的所有参数去除前后空格...可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded 内部转发不在过滤之内。
Java过滤器(Filter)是Java Web开发中的一个重要概念,它主要应用于Servlet容器中,如Tomcat、Jetty等。过滤器允许我们在请求被处理之前或之后进行预处理和后处理,以此来拦截、修改或者增强请求和响应。在这个简单...
### 六个有用的Java过滤器知识点详解 在Java Web开发中,过滤器(Filter)是一种非常重要的技术,它能够对用户的请求和响应进行预处理或后处理,从而实现各种功能需求,例如设置缓存策略、登录验证、字符编码转换等...
### 四个有用的Java过滤器收藏:深入解析与应用 #### 一、使浏览器不缓存页面的过滤器 在Web开发中,控制浏览器的缓存机制是非常重要的,特别是对于那些需要频繁更新或实时交互的网页。Java Servlet过滤器提供了一...