나는이 질문에 많은 시간을 요구 받았지만 실제로 그것을 얻는 방법을 이해할 수는 없다는 것을 알고있다. 나는 작은 서블릿을 만들었고, 로그인 폼 후에 stateful 세션 빈 (엔터티를 검색)을 설정하고 사용자를 집으로 리디렉션했다. 서블릿 그렇게 작동합니다서블릿에서 리디렉션되는 jsp의 사용자 이름
@EJB
private SessionCart ses;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String email = request.getParameter("email");
String password = request.getParameter("password");
ses.login(email, password);
}
을 이제 SessionCart는 이름을 돌려 줄 방법이 있습니다 (방법은 .getNome()) 그리고 난 사용자가 집으로 리디렉션 동안 trought HTTP를 전달하고 싶습니다. 요청 객체를 사용하여 리디렉션 할 수 있지만 (예를 들어 localhost : 8080/web/form/login URL에 서블릿이 있고 localhost : 8080/web/form 주소의 홈페이지가 있습니다./login이지만 localhost : 8080/web /에있을 수도 있고 브라우저가 이미지와 다른 요소를 인식하지 못할 수도 있습니다). 어떻게하면이 일을 할 수 있을까요?
업데이트 : 당신은 HttpSession
를 사용하고 request
객체에서 세션을 얻고, 그 안에 빈 둘 필요가 @developerwjk
@Stateful
@LocalBean
public class SessionCart {
@Resource
private SessionContext context;
@PersistenceContext(unitName="ibeiPU")
private EntityManager manager;
private LinkedList<Vendita> carrello;
private LinkedList<Integer> quantita;
private Persona utente;
/*
* Business methods
*/
}
response.addCookie (c)와 함께 쿠키를 설정하려했는데, 여기서 c는 사용자 이름이 들어있는 쿠키이지만 브라우저는 리디렉션 후 보내지 않습니다. ( – Neo87
실제로 세션 콩을 세션에 넣어야합니다. 그냥'SessionCart'라고 명명하면 세션에 넣지 않습니다. – developerwjk
그리고 집중하십시오. 지도 전체를 뛰어 넘지 마십시오. 'HttpSession'을 찾아서 사용하는 방법 ... 세션에 마술처럼 나타나지 않기 때문에 쿠키를 쓰는 대신 세션에 "Session"이라는 단어가 포함 된 이름을 주면됩니다. – developerwjk