2010-06-04 31 views
11

Trong ứng dụng web của tôi, tôi có thể kiểm tra phiên đã tồn tại hay chưa.phiên kiểm tra trong servlet và jsp

tôi muốn kiểm tra điều này trong servlet và trong jsp.

là có cách nào để kiểm tra điều này.

Cảm ơn

Trả lời

13

Bạn có thể thử nghiệm bằng HttpServletRequest#getSession(boolean create) với create=false. Nó sẽ trả về null nếu chưa được tạo.

HttpSession session = request.getSession(false); 
if (session == null) { 
    // Session is not created. 
} else { 
    // Session is already created. 
} 

Nếu bạn thực sự muốn tạo phiên anyway nếu nó không tồn tại, sau đó chỉ cần lấy nó và kiểm tra độ tươi bằng HttpSession#isNew():

HttpSession session = request.getSession(); 
if (session.isNew()) { 
    // Session is freshly created during this request. 
} else { 
    // Session was already created during a previous request. 
} 

Đó là cách bạn sẽ làm điều đó trong một Servlet. Trong một JSP, bạn chỉ có thể kiểm tra sự tươi mát với sự giúp đỡ của JSTL và EL. Bạn có thể lấy phiên bằng PageContext#getSession() và sau đó chỉ cần gọi isNew() trên đó.

<c:if test="${pageContext.session.new}"> 
    <p>Session is freshly created during this request.</p> 
</c:if> 

hoặc

<p>Session is ${pageContext.session.new ? 'freshly' : 'already'} created.</p> 
2

Một cách là để thiết lập một phiên id trong jsp và sau đó kiểm tra id cùng phiên trong servlet jsp hay khác để kiểm tra xem nó còn sống hay không.

HttpSession session = req.getSession(); 
     session.getId(); 
Các vấn đề liên quan