java filter 如何中获取请求地址?

 我来答
两只胖兔纸
2018-04-11 · TA获得超过1.5万个赞
知道小有建树答主
回答量:65
采纳率:75%
帮助的人:3.1万
展开全部

当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp 文件,而是先由代理服务器去访问index.jsp。

代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的。

所以index.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。  

于是可得出获得客户端真实IP地址 的方法:

public class Myfilter implements Filter { 

public void destroy() { 

private HttpServletRequest request; 

private HttpServletResponse response; 

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { 

request = (HttpServletRequest) arg0; 

response = (HttpServletResponse) arg1; 

System.out.println(request.getRequestURI()); 

System.out.println("===ff===="+request.getQueryString()); 

if("1".equals(request.getRequestURI().substring(("/"+request.getContextPath()).length()))){ 

request.getRequestDispatcher("/my.jsp").forward(request, response); 

return; 

arg2.doFilter(request, arg1); 

public void init(FilterConfig arg0) throws ServletException { 

}

Mr_先_生_
2015-03-10 · 超过34用户采纳过TA的回答
知道答主
回答量:83
采纳率:66%
帮助的人:23.5万
展开全部
public class MyFilter implements Filter{

public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain){
HttpServletRequest request=(HttpServletRequest)req;

String uri=request.getRequestURI(); //uri就是获取到的连接地址!

}
}

//谢谢采纳
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-10
展开全部
这个要看是哪个Filter 。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式