获取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