jboss url路径

我今天花了很多时间来弄清楚如何在运行在JBoss上的JSF应用程序中(使用JBoss 7 Final)强制正确解码编码的字符。 当您有例如通过URL传递中文字符时,就会发生此问题。 假设您有指点事件,编码为%E6%8C%87%E4%BA%8B。 令人惊讶,但是这些字符以指事的形式到达服务器端。 服务器使用ISO-8859-1自动解码它们。 因此,如果您尝试像这样自己解码,则没关系:

FacesContext fc = FacesContext.getCurrentInstance();
String param = fc.getExternalContext().getRequestParameterMap().get(name);
String decodedParam = java.net.URLDecoder.decode(param, "UTF-8");

这无济于事,因为字符已经被错误地解码,并且您从请求参数映射中获得了已经被错误解码的字符。 如果您在页面上也没有帮助

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

要克服此错误,您需要做两件事:特殊的字符编码过滤器和JBoss的standalone.xml中的配置。 过滤器应同时为请求和响应设置配置的编码。

public class CharacterEncodingFilter implements Filter {/** The default character encoding to set for request / response. */private String encoding = null;/** The filter configuration object. */private FilterConfig filterConfig;/** Should a character encoding specified by the client be ignored? */private boolean ignore = true;public void destroy() {encoding = null;filterConfig = null;}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {// conditionally select and set the character encoding to be usedif ((ignore || (request.getCharacterEncoding() == null)) && (encoding != null)) {request.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);}// pass control on to the next filterchain.doFilter(request, response);}public void init(FilterConfig filterConfig) throws ServletException {this.filterConfig = filterConfig;this.encoding = filterConfig.getInitParameter("encoding");String value = filterConfig.getInitParameter("ignore");this.ignore = ((value == null) || value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes"));}
}

注意:如果仅设置请求的编码,则无济于事。 您还应该通过response.setCharacterEncoding(encoding)将其设置为响应。 web.xml中的配置看起来像

<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>xyz.mypackage.CharacterEncodingFilter</filter-class><init-param><description>override any encodings from client</description><param-name>ignore</param-name><param-value>true</param-value></init-param><init-param><description>the encoding to use</description><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>*.jsf</url-pattern>
</filter-mapping>

现在,您必须在关闭<extensions>标记之后直接将以下系统属性添加到standalone.xml中:

<system-properties><property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/><property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>

从文档中:

  • org.apache.catalina.connector.URI_ENCODING指定%xx解码URL后用于解码URI字节的字符编码。 如果未指定,将使用ISO-8859-1。
  • org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING指定是否应将contentType中指定的编码用于URI查询参数,而不是使用org.apache.catalina.connector.URI_ENCODING。 出现此设置是为了与Tomcat 4.1.x兼容,其中在contentType中指定的编码或使用Request.setCharacterEncoding方法显式设置的编码也用于URL中的参数。 默认值为false。

现在,JBoss看起来为响应设置了字符编码,并使用它来解码URL参数。 希望此信息可以帮助您节省时间。

参考: 在JBoss中 ,我们的JCG合作伙伴 Oleg Varaksin在软件开发博客Thoughts上 正确解码了URL参数 。

翻译自: https://www.javacodegeeks.com/2013/07/proper-decoding-of-url-parameters-on-the-server-side-in-jboss.html

jboss url路径

jboss url路径_在JBoss的服务器端正确解码URL参数相关推荐

  1. 在JBoss的服务器端正确解码URL参数

    我今天花了很多时间来弄清楚如何在运行在JBoss上的JSF应用程序中(使用JBoss 7 Final)强制正确解码编码的字符. 当您有例如通过URL传递中文字符时,就会出现此问题. 假设您有指点事件, ...

  2. jboss fuse 教程_使用JBoss Fuse和OpenShift进行Cloud Native Camel骑行

    jboss fuse 教程 红帽公司最近发布了一个微服务集成工具包,用于在OpenShift v3的Docker和Kubernetes环境中运行我们的微服务. 为了帮助人们更好地理解这一点,我将Rid ...

  3. jboss fuse 教程_在JBoss Fuse / Fabric8 / Karaf中使用Byteman

    jboss fuse 教程 您是否曾经尝试了解一些简单的东西不起作用的过程? 您正在任何众所周知的上下文中编写代码,无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志. ...

  4. jboss 程序位置_介绍JBoss BPM Suite安装程序

    jboss 程序位置 本周,我们想向您介绍JBoss BRMS和JBoss BPM Suite产品随附的一个鲜为人知的安装程序组件. 请注意,当前所有的演示项目都要求您下载JBoss BPM Suit ...

  5. python url拼接_详解Python urlencode编码和url拼接方法

    urlencode 调用方法 urlencode的参数必须是Dictionaryimport urllib d = {'name1':'www.pythontab.com','name2':'bbs. ...

  6. java 文件url地址_简单的解析文件,取URL地址,并根据地址抓下页面

    /** * * 解析文件,取出URL地址 * */ public static void regexStr(){ String input="飞机但是http://mail.Sohu.com ...

  7. 基于域名或URL路径进行转发

    基于域名或URL路径进行转发 更新时间:2020-08-18 09:07:49 编辑我的收藏 本页目录 域名或URL路径转发 添加域名或URL路径转发策略 编辑转发策略 删除转发策略 负载均衡支持配置 ...

  8. 如何设置网站的URL路径

    网站的URL路径是网站最基础的优化,URL路径要在网站建设之时设置好.修改URL路径会生成大量的死链接,死链接的爬区会导致网站降权或者被K.网站的URL的设置需要注意一下几个点: 1.参数超过3个以上 ...

  9. jboss7.1.1 部署_在JBoss AS 7上部署BroadleafCommerce 2.0

    jboss7.1.1 部署 前2个步骤实际上与Broadleaf无关,但是提到该步骤是为了使其易于执行(复制/粘贴)这些步骤. 步骤#1:在JBoss AS中配置数据源. <datasource ...

最新文章

  1. Windows计数器做性能监控(window server 2008服务器)
  2. linux为用户配置java环境变量
  3. Objective-C笔记
  4. mysql没法安装_mysql没法使用、没法启动服务的解决方法
  5. 一起来学习android自定义控件3——边缘凹凸的View
  6. python爬虫知识点总结(十九)Scrapy命令行详解
  7. 技术转管理,用什么来拯救自己?
  8. 向架构师进军--定义需求
  9. 数据同步Sqoop用法之mysql与Hive导入导出
  10. 传海思为 PC 开发 CPU/GPU ;小米将发布第二款 5G 手机;Firefox 68.0.2 发布 | 极客头条...
  11. 批量文件中加前缀、word删除空白行、删除含有某一个首字母的行
  12. Oracle疑问解答
  13. 在windows系统下安装linux双系统
  14. SOUI消息订阅事件实例
  15. python发送超大附件邮件_【Python】发送邮件功能浅析
  16. 字体图标文件服务器提示404,iis环境下字体图标woff/woff2/svg返回404不显示的原因与解决方法...
  17. 如何理解keras中的shape/input_shape
  18. Base64 编码的特征
  19. 独家分享《非诚勿扰2》普清下载 葛优 舒淇 姚晨 孙红雷 邵兵 安以轩 廖凡
  20. Android系统启动流程完整分析(一)

热门文章

  1. 动态规划练习2 [合唱队形]
  2. Hadoop生态hive(二)安装
  3. Java中CAS详解
  4. 分享18道Java基础面试笔试题
  5. 新闻发布项目——接口类(newsTbDao)
  6. JS向对象中添加和删除属性
  7. 文件内容查看---Linux
  8. mybatis解决 1 字节的 UTF-8 序列的字节 1 无效
  9. XML——写出XML文档(XSLT+StAX)
  10. java泛型程序设计——泛型类型的继承原则