我正在尝试测试一个在ServletRequest上设置属性的servlet。 我正在使用jbehave和restTemplate以及apache httpClient向该servlet发送请求。 是否可以验证在servletRequest上设置了哪些属性?
这是我在servlet中基本上要做的事情:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws OException, ServletException{
request.setAttribute("attributeName","SIMPLE_NAME");
...
}
和客户:
HttpEntity entity = HttpEntity.EMPTY;
Map<String, String> map = new HashMap<String, String>();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
HttpEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET, entity, String.class, map);
所以在这种情况下,我想验证attributeName是否设置了值SIMPLE_NAME
答案 0 :(得分:1)
不,这是不可能的。 HttpServletRequest
属性是与HTTP协议无关的服务器端实现细节。因此,HTTP客户端不知道这一点(也不应该)。
如果要检查是否已从服务器端添加属性,则可以在Web应用程序中实现并注册ServletRequestAttributeListener
。