如果我的问题没有任何意义,我很抱歉。所以这就是我所拥有的:2 页A.jsf
和B.jsf
. 当我按下 中的按钮时A.jsf
,代码会设置 an 的值object
并重定向到B.jsf
. 包含B.jsf
将取决于我设置的对象A.jsf
(取决于我单击的按钮)。因此,我不想让用户在网络浏览器上输入这个
http://myhost:myport/myproject/B.jsf
并直接进入B.jsf
. 所以,没有 GET 请求B.jsf
,只有 POST。如果我看到 GET 请求B.jsf
,我会重定向到A.jsf
. 我觉得解决方案在里面web.xml
。
顺便说一句,我使用的是 Netbean 6.8 和 java EE 6
编辑
这是解决方案。感谢 BalusC
MyFilter.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