(转)resin采用url rewrite来传递jsessionid

本文介绍Resin服务器中JSessionID的两种URL重写配置方法,包括仅修改会话配置及结合alternate-session-url-prefix属性的方式,并解决配置后可能出现的404错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间做公司前台方案的技术探索时,涉及到jsseionid的传递,期间尝试使用resin自己的url rewrite功能来传递jsessionid参数,总结如下:

一) 默认的jsessionid

默认配置中,jsessionid以cookie的方式在页面传递,即在http请求的header中有以下内容:

Cookie: JSESSIONID=abcrmF3Gx-5Z-hhkgHfzr

此时resin/conf/resin.conf中的配置为默认的:
<session-config>
<enable-url-rewriting>false</enable-url-rewriting>
</session-config>

二)使用url rewrite传递jsessionid

将jsessionid放到url中,这样可以不使用cookie。
不使用cookie,可以避免遭遇用户禁用cookie的情况。另外,有安全性方面的考虑。

使用url rewrite有两种方式:

1. http://***/wmail/welcome.action;jsessionid=abcLFJLwoeurlsjdlf?...
这种是将jsessionid放在action后面

需要修改resin/conf/resin.conf中的配置为:
<session-config>
<enable-cookies>false</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
</session-config>

2. http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...

除了要按照前面的同样修改resin/conf/resin.conf中的配置为:
<session-config>
<enable-cookies>false</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
</session-config>

还要在resin/conf/resin.conf中增加alternate-session-url-prefix的设置:
<server>  
<class-loader>...</class-loader>
<alternate-session-url-prefix>/~jid=</alternate-session-url-prefix>
......

注意alternate-session-url-prefix的位置,不是在<session-config>里面

测试中发现,按照这种方式配置后,url被重写为
http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...

在浏览器中访问会产生http 404 file not found 错误,经反复检查(吐血的经历),发现需要修改resin/conf/resin.conf中的配置:

<server>
......
<host id="" root-directory=".">
<!--
<web-app id="/" document-directory="webapps/ROOT"/>
-->
</host>
</server>
将<web-app id="/" document-directory="webapps/ROOT"/>的设置屏蔽后才能正常访问
http://***/~jid=abcLFJLwoeurlsjdlf/wmail/welcome.action?...
这样的地址。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值