0
我正在使用过滤器编写会话管理我已经编写了方法并使用了managedbean注解我试图将验证成功发送给过滤器。使用过滤器的会话管理
@ManagedBean(name = "customer")
@SessionScoped
public class CustomerBean implements Serializable{
public String checkValidCustomer(){
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
HttpSession session = request.getSession(true);
Customer cust = new Customer();
cust.setUsername(getUsername());
cust.setPassword(getPassword());
String returnValue = customerBo.checkValidCustomer(cust);
if(returnValue == "success"){
session.setAttribute("customer", returnValue);
}
else
{
session.setAttribute("customer", null);
}
return returnValue;
和我得到的retunValue串更迭,所以我试图为价值传递给managedBean注释。而myfilter代码等。
@WebFilter("/faces/*")
public class LoginFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
String cust = (String) req.getSession().getAttribute("customer");
if (cust != null && cust.equals("success")) {
chain.doFilter(request, response);
} else {
resp.sendRedirect(req.getContextPath() + "/faces/default.xhtml");
}
}
我弦乐卡斯特越来越空值,当我打开网页的登录它显示此网页有重定向loop.Can请你告诉我哪里做错了..
在继续使用JSF之前,试着承认“success”==“success”'为'false'的事实。改为坚持“等于”。而且,是的,使用自己的调试器几乎总会为您提供有关如何更正代码的指导,或者至少指导您如何按预期工作。 – skuntsel