环境:
在外网访问通过路由器映射过端口的服务器,或者使用代理访问的时候,request.getServerName()获得的始终是服务器的内网地址,导致外网很多操作无法进行。
原因:
request.getServerName()获得的是离服务器最近的IP或者域名,一般是服务器本身的IP。
介绍:
X-Forwarded-For: 10.20.156.2, 10.20.156.3 (IP)
X-Forwarded-Host: www.b.com, benni82.a.com (HOST)
X-Forwarded-Server: www.b.com, www.a.com (Server)
以上内容都是使用代理后的访问结果,从左到右,分别为离服务器最远的代理级别的信息,直到服务器本身
解决:
使用请求报头中的X-FORWARDED-HOST信息获得
String serverName = request.getHeader("X-FORWARDED-HOST");
if (serverName == null || serverName.length() < 1) {
serverName = request.getServerName() + (request.getServerPort() == 80 ? "" : (":" + request.getServerPort()));
} else if (serverName.contains(",")) {
serverName = serverName.substring(0, serverName.indexOf(",")).trim();
}
分享到:
相关推荐
【ACCP 6.0 S2-5】课程主要涵盖了使用JSP(JavaServer Pages)、Servlet和Ajax技术来开发新闻发布的系统。这是一个典型的Web应用程序开发主题,旨在教授学员如何利用这些技术构建动态、交互式的网站。 JSP是Java...
北大青鸟6.0课件S2使用JSP/Servlet/Ajax技术开发新闻发布系统2,,我只能上传小于50M的文件,所以分了2次上传,下载使用JSP/Servlet/Ajax技术开发新闻发布系统1后就是全部的了。如有问题加Q:329139513.注明来意
在本项目中,“使用JSP/Servlet/Ajax技术开发新闻发布系统2”是北大青鸟ACCP6.0课程的一部分,旨在教授学员如何构建一个动态、交互式的新闻发布平台。这一部分通常涵盖系统的后端开发和部分前端增强功能。下面将详细...
在IT行业中,ACCP(Accelerated Computer Certified Professional)是一套针对软件开发人员的培训课程,其6.0版本的第二阶段(S2)主要聚焦于Web应用开发,特别是使用JSP(JavaServer Pages)、Servlet和Ajax...
在本教程中,我们将深入探讨如何使用JSP(JavaServer Pages)、Servlet和Ajax技术来开发一个功能完善的新闻发布系统。这通常涉及到动态网页的创建、服务器端处理以及客户端的异步数据交互,从而提供流畅的用户体验。...
【ACCP S2 使用JSP/Servlet技术开发新闻发布系统】是一个面向初学者的课程,旨在教授如何使用Java服务器页面(JSP)和Servlet技术来构建一个动态、交互式的新闻发布平台。这个课程涵盖了从基础概念到实际开发的完整...
本项目"使用JSP/Servlet技术开发新闻发布系统"是基于ACCP8.0框架,旨在教授如何利用这两项技术构建一个功能完善的新闻发布平台。 **JSP技术** 1. **JSP基本概念**:JSP是一种服务器端脚本语言,允许开发者在HTML...
【标题】北大青鸟ACCP7.0使用JSP/Servlet技术Y2课件 【内容详解】 北大青鸟的ACCP7.0课程是针对IT行业初学者和进阶者设计的一套全面的编程教育体系,特别是对于Java Web开发领域。在第二学年(Y2)的学习中,重点...
在本课程中,我们将深入探讨如何使用JSP(JavaServer Pages)、Servlet和Ajax技术来构建一个新闻发布系统。这个系统能够实现实时的数据交互,提供动态更新的新闻展示,提升用户体验。以下是这些关键技术的详细说明:...
【标题】"jsp/servlet分页带查询示例"是一个典型的Web开发教程,它涵盖了如何在Java Web应用程序中实现分页查询的功能。这个示例包括了必要的组件和步骤,帮助开发者理解如何在JSP(JavaServer Pages)和Servlet中...
在这个名为“jsp/servlet blog”的项目中,我们看到一个基于这两项技术的简单博客系统。** **JSP** 是一种服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,使得动态内容的生成变得更加方便。JSP文件...
在JSP/Servlet/Ajax组合中,Servlet通常扮演控制器的角色,接收用户请求,调用业务逻辑,然后将结果返回给JSP进行展示。在新闻系统的实现中,Servlet可能包含处理新闻添加、删除、修改以及搜索等功能的逻辑。 ...
总结,"使用JSP/Servlet/Ajax技术开发新闻发布系统"涉及到的技术栈广泛,包括前后端交互、数据库操作、MVC设计模式等多个方面,开发者需要掌握这些技能才能成功构建出高效、用户体验良好的新闻发布平台。
在本项目实战中,我们将深入探讨如何使用Java...通过这个项目实战,学习者不仅可以掌握JSP、Servlet和JavaBean的基本使用,还能了解Web开发的流程,提升解决实际问题的能力,为未来在Java Web领域的工作打下坚实基础。
- ASP运行在IIS(Internet Information Services)上,依赖Windows环境,而JSP/Servlet可在任何支持Java的Web服务器或应用服务器上运行,如Tomcat、Jetty等,具备更好的跨平台性。 - JSP/Servlet的性能通常优于ASP...
**JSP(JavaServer Pages)和Servlet是Java Web...总结,"jsp/servlet帮助文档"涵盖了JSP和Servlet的基本概念、使用方式以及相关API。通过深入学习和理解这些知识,开发者能够有效地构建和维护高性能的Java Web应用。
【标题】:“S2 使用JSP/Servlet技术开发新闻发布系统” 在Web开发领域,JSP(JavaServer Pages)和Servlet是两种重要的技术,常用于构建动态、数据驱动的Web应用程序,如新闻发布系统。本项目“S2 使用JSP/Servlet...
《使用JSP/Servlet/Ajax技术开发新闻发布系统》 内部测试-笔试试卷 一、选择题(共25题,每题2分,满分100分) 1) JSP表达式语言可用于在网页上生成动态内容并代替JSP脚本元素,JSP表达式语言的语法是(B)。 A. {EL...
**JSP(JavaServer Pages)/Servlet 知识详解** JSP 和 Servlet 是 Java Web 开发中的核心组件,它们在构建动态网站时起着至关重要的作用。以下是对这两个技术及其相关概念的详细解释: 1. **JSP 基础** JSP 是一...
《基于JSP/SERVLET实现的旅游管理系统详解》 在当今信息化社会,旅游管理系统作为旅游业的重要组成部分,已经广泛应用于各类旅行社、酒店预订、景点管理等多个领域。本系统以JSP(JavaServer Pages)和Servlet技术...