struts2、jsp的简单路径的简单拦截

  <filter>
  <filter-name>UsersFilter</filter-name>
  <filter-class>com.web.UsersFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>UsersFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping> 
package com.web;
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;
public class UsersFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        // 设置请求的字符编码
        request.setCharacterEncoding("UTF-8");
        // 设置返回请求的字符编码
        response.setCharacterEncoding("UTF-8");
        // 转换ServletRequest为 HttpServletRequest
        HttpServletRequest req = (HttpServletRequest) request;
        // 转换ServletResponse为HttpServletRequest
        HttpServletResponse res = (HttpServletResponse) response;
        // 获取Session
        HttpSession session = req.getSession();
        // 获取Session中存储的对象
        Object o = session.getAttribute("user");
        // 获取当前请求的URI
        String url = req.getRequestURI();
        // 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI
        if (o==null && url.indexOf("test.jsp")<0
                && url.indexOf("comment.jsp")<0
                && url.indexOf("link.jsp")<0) {
            chain.doFilter(request, response);
            res.setHeader("Cache-Control","no-store");
            res.setDateHeader("Expires",0);
            res.setHeader("Pragma","no-cache");
            res.flushBuffer();
            }
    }

    public void destroy() {
        // TODO Auto-generated method stub

    }

    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub

    }   

}  

****************************************************************************************

时间: 2024-11-03 20:58:11

struts2、jsp的简单路径的简单拦截的相关文章

利用JSP编程技术实现一个简单的购物车程序

实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP中数据库编程方法: 二.实验要求 : 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来处理用户提交的登录信息,如果用户名为本小组成员的名字且密码为对应的学号时,采用J

JSP简单练习-一个简单的计数器

在JSP中,在"<%"和"%>"之间书写的程序代码成为java程序片. 一个JSP页面中可以有多个java程序片.要注意的是,在Java程序片中声明的变量在它们所在JSP页面的所用程序片及表达式中都有效.基于此,可以把一个较大的程序片分成几个小的程序片,还可在其中插入HTML语句,以便编写的程序代码更具有可读性. 在程序片中声明的变量只在页面有效,是局部变量,它在不同的客户访问同一个页面时,此变量是不能共享的.但如果是在"<%!"

输出图中顶点i到顶点j之间的所有简单路径

简单路径(不包括环) DFS遍历以及回溯得到结果 void dfs(ALGraph graph, int v, int end, bool visit[], int path[], int cnt) { visit[v] = true; path[cnt++] = v; if(v == end) { for(int i = 0; i < cnt; i++) { cout<<path[i]<<" "; } cout<<endl; return;

_DataStructure_C_Impl:求图G中从顶点u到顶点v的一条简单路径

#pragma once #include<stdio.h> #include<stdlib.h> #define StackSize 100 typedef int DataType; //栈元素类型定义 typedef struct{ DataType stack[StackSize]; int top; }SeqStack; //将栈初始化为空栈只需要把栈顶指针top置为 void InitStack(SeqStack *S){ S->top=0;//把栈顶指针置为0

seajs模块路径解析 简单总结

seajs模块路径解析 最近在试着用seajs + grunt改造现有项目, 遇到的最大的问题就是seajs命名与调用, 简单总结一下. 模块调用 seajs中调用模块有两种方式,seajs.use(ID) . require(ID). ID命名 完整绝对路径 例如 "http://example.com/test/js/jquery/jquery.js" 以 "." 开头 例如 "./home/main" "../main"

邻接矩阵存储简单路径(swust oj 1070)

Description 假设无向图G采用邻接矩阵存储,设计一个算法,输出图G中从顶点u到v的所有简单路径. Input 简单路径是指路径上的顶点不重复.第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),第二行表示顶点u和v的编号,接下来是为一个n*n大小的矩阵,表示图的邻接关系.数字为0表示不邻接,1表示不邻接. Output 输出图G中从顶点u到v的所有简单路径. Sample Input 5 0 3 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1

邻接矩阵存储简单路径

Description 假设无向图G采用邻接矩阵存储,设计一个算法,输出图G中从顶点u到v的所有简单路径. Input 简单路径是指路径上的顶点不重复.第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),第二行表示顶点u和v的编号,接下来是为一个n*n大小的矩阵,表示图的邻接关系.数字为0表示不邻接,1表示不邻接. Output 输出图G中从顶点u到v的所有简单路径. Sample Input   1 2 3 4 5 6 7 5 0 3 0 1 0 1 1 1 0 1 1 0 0 1 0

[简单路径] Useful Decomposition

Ramesses knows a lot about problems involving trees (undirected connected graphs without cycles)! He created a new useful tree decomposition, but he does not know how to construct it, so he asked you for help! The decomposition is the splitting the e

Struts2 笔记(2) --Struts传值/跳转/拦截器/注解等

1.action中如何接受页面传过来的参数 第一种情况:(同名参数) 例如: 通过页面要把id=1 name=tom age=20这三个参数传给action 1.action里面定义三个成员变量id name age,这个三个变量的名字一定要和所传变量的名字一致. 2.提供get/set方法 3.将来页面把这三个参数传过来的时候,struts2框架会自动的帮我们把这个三个参数值放action中的三个属性里面.(同时还做了类型的转换) 注意:这个工作其实是由defaultStack这个拦截器栈里面