我在春季开发服务,服务部署在 JBOSS 7.1.0 中。请求映射示例代码:
@RequestMapping(value=/state, method=RequestMethod.GET)
public ResponseEntity<ListStatesResponseVO> getListOfStates(@RequestParam(required=false) Long id,
@RequestParam(required=false) Long page,
@RequestParam(required=false) Long pagesize);
我的问题是当我在请求参数中传递特殊字符时,它返回给我一个有效的 xml 响应,但根据我的理解,它应该返回“400 BAD REQUEST”。
示例 URI:
http://localhost:8080/location-services/location/api/state?id=$%^$^$#$%^$%
我还添加了
<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"/>
在 JBOSS 的standalone.xml 中。
并且
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<!-- set forceEncoding to true if you want to override encoding of servlet -->
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
在 web.xml 中。
但这些并不能解决问题。
有没有可用的解决方案。提前致谢。