servlets之如何获取请求头、远程地址和其他 HttpServletRequest 特定信息
我有一个 JSF 2.0 网络项目,我的网络有一个表单,它必须执行以下操作:
获取表单的参数并将其保存在 Bean 中(完成)
从 servlet 获取此信息:
- 远程地址:
- 远程主机:
- 地区:
- 内容类型:
- 边界:
- 内容长度:
- 字符编码:
将Bean数据和Servlet数据插入到数据库表中(等待第2步)
我对 JSF 中的 Servlet 了解不多,我不需要是否必须制作一个。我只有那个代码但是在 JSP 中:
String informe="";
Enumeration a = request.getHeaderNames();
while(a.hasMoreElements() ){
String h = a.nextElement().toString();
informe += h+": "+request.getHeader(h)+"\n";
}
a = request.getAttributeNames();
while(a.hasMoreElements() ){
String h = a.nextElement().toString();
informe += h+": "+request.getHeader(h)+"\n";
}
informe += "Remote Address: "+request.getRemoteAddr()+"\n";
informe += "Remote Host: "+request.getRemoteHost()+"\n";
informe += "Locale: "+request.getLocale()+"\n";
informe += "Content Type: "+request.getContentType()+"\n";
informe += "Content Length: "+request.getContentLength()+"\n";
.....
..
我不知道如何在 JSF 中获取请求信息以及我必须执行哪些步骤。我读了很多页,但我认为我不需要他们做的所有事情。
请您参考如下方法:
HttpServletRequest 对象在 JSF 中可用 ExternalContext#getRequest() .
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
// ...
ExternalContext顺便还提供了一些直接的方法来获取所需的信息。查看javadoc中以getRequestXxx()开头的方法,如getRequestHeaderMap()、getRequestContentType()等.
为此您不需要另一个 servlet。 JSF 已经将 FacesServlet 作为唯一的请求/响应 Controller 。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



