Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季宠物诊所<;spring:url……/>;为每个url编码_Java_Spring_Url_Jakarta Ee_Spring Mvc - Fatal编程技术网

Java 春季宠物诊所<;spring:url……/>;为每个url编码

Java 春季宠物诊所<;spring:url……/>;为每个url编码,java,spring,url,jakarta-ee,spring-mvc,Java,Spring,Url,Jakarta Ee,Spring Mvc,我正在实施所给的Spring宠物诊所示例项目 实施 在主页中,所有URL都由标记编码。我只想确认,通过spring:url标记对链接(甚至是简单的导航url)进行编码是一种良好的编程实践,还是出于特定原因进行编码?是的,这是一种良好的实践。该标记是一个springjsp标记,用于创建带有JSTLc:url增强功能的url。 标记用于创建url,在客户端关闭Cookie时非常有用,您需要重写从jsp页面返回的url。 如果需要提供持久会话,重写的URL将对会话ID进行编码 例如,您的URL将显示为

我正在实施所给的Spring宠物诊所示例项目

实施


在主页中,所有URL都由
标记编码。我只想确认,通过spring:url标记对链接(甚至是简单的导航url)进行编码是一种良好的编程实践,还是出于特定原因进行编码?

是的,这是一种良好的实践。该标记是一个springjsp标记,用于创建带有JSTL
c:url
增强功能的url。
标记用于创建url,在客户端关闭Cookie时非常有用,您需要重写从jsp页面返回的url。 如果需要提供持久会话,重写的URL将对会话ID进行编码

例如,您的URL将显示为:

<c:url value="a.jsp">

/context/a.jsp // when cookies is enabled
/context/a.jsp;jsessionid=B01F432.... // when cookie is disabled
结果为:/currentApplicationContext/url/path/超过%20JSTL%20c%3URL


请参阅此处的更多详细信息:

感谢您的回复,Lucas,我只是有一个疑问:如果会话未创建,该怎么办?我刚刚访问了应用程序的索引页。在这个场景中,spring:url标记将返回什么。当您第一次请求时,带有c:url标记的链接将被重写以添加jsessionid参数。此时,服务器不确定客户端是否支持cookie,因此它会在URL上生成cookie和jsessionid。
<spring:url value="/url/path/{variableName}">
   <spring:param name="variableName" value="more than JSTL c:url" />
 </spring:url>