似乎是一个愚蠢的问题,答案是“不要使用encodeURL()!”。但是我正在使用在JSP中使用netui锚标记的代码库,并且需要禁用将JSESSIONID写入URL中,因为这样做存在安全风险。
在WebLogic中,可以通过在weblogic.xml中配置启用了url- rewriting的功能来配置它(我知道,因为我在WebLogic服务器中编写了该功能!)。但是,我找不到Tomcat的等效配置选项。
没有设置想到。但这很容易做到,方法是创建一个对感兴趣的(可能是?)进行初次Filter监听,并用实现返回,该实现返回未经修改的相同参数。url- pattern``/*``ServletResponseHttpServletResponseWrapperencodeURL()
Filter
url- pattern``/*``ServletResponse
HttpServletResponseWrapper
encodeURL()
开球示例:
public void doFilter(ServletRequest request, ServletResponse response) throws ServletException, IOException { chain.doFilter(request, new HttpServletResponseWrapper((HttpServletResponse) response) { public String encodeURL(String url) { return url; } }); }