获取HTTPS的JSP页面的服务器名称和端口号

我需要为表单操作创建URL,但是该表单应该在https当前运行于HTTPS的9002端口上的底层系统下提交。我无法在JSP页面中使用以下选项

<form:form action="${request.contextPath}/springSecurity/login"

method="post" commandName="loginForm" target="guestFrame">

因为在HTTP中时上下文路径以HTTP形式出现,并且系统将引发异常,因为表单应该由HTTPS提交。我无法将动作URL硬编码为当前的主机名localhost,因为HTTPS端口是可配置的,因此甚至无法进行硬编码。

有什么方法可以使用JSTL或其他方法在JSP中创建URL,以便可以在HTTPS下提交表单

回答:

HttpServletRequest.getServerName()将给出服务器名称。但是,没有办法获得https端口。443如果要在方法中对其进行修复,则应使用默认值。

但是好的解决方案是将用作Security Transport

Guarantee登录网址,以便服务器将springSecurity/login页面自动重定向到https

<security-constraint>

<web-resource-collection>

<web-resource-name>secure</web-resource-name>

<url-pattern>/springSecurity/login</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

以上是 获取HTTPS的JSP页面的服务器名称和端口号 的全部内容, 来源链接: utcz.com/qa/410268.html

回到顶部