我有一个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中获取请求信息以及我必须采取的步骤。我读过很多页面,但我认为我并不需要他们做的所有事情。
答案 0 :(得分:4)
HttpServletRequest
对象位于ExternalContext#getRequest()
的JSF中。
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
// ...
顺便说一下,ExternalContext
还提供了一些获取所需信息的直接方法。在javadoc中查看以getRequestXxx()
开头的方法,例如getRequestHeaderMap()
,getRequestContentType()
等。
您不需要另外的servlet。 JSF已经将FacesServlet
作为唯一的请求/响应控制器。