ServletRequest获取实际页面的名称

时间:2011-05-15 20:35:00

标签: java servlets servlet-filters

我正在使用FilterdoFilter - 功能。我想知道要求的网站。有些函数给我一些像/firstDirectoryInWebDirectory/lala.jsp这样的东西是完美的。

去这儿的方法是什么?使用上下文将是正确的方法,但我找不到任何好的方法: - (

由于

2 个答案:

答案 0 :(得分:12)

request.getRequestURI()应返回域名后的网址部分。

从那里,你可以剥离request.getContextPath()

(您必须先将ServletRequest强制转换为HttpServletRequest

答案 1 :(得分:0)

当我刚开始学习Java EE时,混淆 ServletRequest HttpServletRequest 方法是偶然的。正如Bozho所述,类型转换是访问所需方法所必需的。

当要求名为" Test" 的servlet时,此代码将记录访问时间 IP

if (((HttpServletRequest)request).getServletPath().equals("/Test")){
            String IP = request.getRemoteAddr();
            System.out.println("Test Servlet:: Logged IP "+ IP + ", Time :" + new Date().toString());
        }
filterChain.doFilter(request,response);

基本上,请求对象从通用请求转换为HTTP请求,然后才能将 getServletPath()的返回字符串与您想要的任何内容进行比较(& #34; /测试"或" /firstDirectoryInWebDirectory/lala.jsp"或" whatever.html")。