【发布时间】:2010-08-18 23:50:08
【问题描述】:
如果我的问题没有任何意义,我很抱歉。所以这就是我所拥有的:2 页,A.jsf 和 B.jsf。当我按下A.jsf 中的按钮时,代码会设置object 的值并重定向到B.jsf。 B.jsf 的包含取决于我在A.jsf 中设置的对象(这取决于我单击的按钮)。因此,我不想让用户在网络浏览器上输入这个
http://myhost:myport/myproject/B.jsf
直接联系B.jsf。因此,没有对B.jsf 的 GET 请求,只有 POST。如果我看到对B.jsf 的GET 请求,我会重定向到A.jsf。我觉得解决方案在web.xml.
顺便说一句,我使用的是 Netbean 6.8 和 java EE 6
编辑
这是解决方案。感谢 BalusCMyFilter.java
package org.xdrawings.filter;
public class MyFilter implements Filter{
private FilterConfig filterConfig = null;
public void destroy(){}
public void init(FilterConfig filterConfig){
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse) response;
if("GET".equals(req.getMethod()) && "/B.jsf".equals(req.getServletPath())){
res.sendRedirect("A.jsf");
}else {
chain.doFilter(request, response);
}
}
}
然后在我的web.xml
<filter>
<filter-name>My Filter</filter-name>
<filter-class>org.xdrawings.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My Filter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
All credits go to BalusC
【问题讨论】:
标签: java web-applications jsf web.xml