2014-04-11 14 views
6

Tôi có yêu cầu đặt thời gian chờ của phiên là 40 giây. Tôi biết chúng tôi giữ bình thường đến 20 phút. Nhưng yêu cầu ứng dụng hiện tại của tôi là giữ thời gian chờ của phiên là 40 giây. Web.xml chỉ lấy giá trị số nguyên là 1 nhưng không lấy 0,6. Có cách nào để viết cái này không? Chúng tôi đang chạy ứng dụng web java của chúng tôi trên máy chủ Apache tomcat.Làm cách nào để đặt thời gian chờ của phiên trong vài giây trong web.xml?

Vậy làm cách nào để đặt thời gian chờ của phiên trong vài giây trong web.xml?

+0

Visit http://stackoverflow.com/questions/15382895/session-timeout-in-web-xml để biết thêm thông tin – harunaydin28

Trả lời

11

Sử dụng bộ mô tả triển khai, bạn chỉ có thể thiết lập thời gian chờ trong vài phút:

<session-config> 
    <session-timeout>1</session-timeout> 
</session-config> 

nhưng sử dụng api HttpSession bạn có thể đặt thời gian chờ phiên trong vài giây cho một servlet:

HttpSession session = request.getSession(); 
session.setMaxInactiveInterval(40*60); 

đề nghị đọc: http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275

+4

này sẽ coi như 40 không phút giây. –

3

cũng trong tệp web.xml bạn có thể cung cấp trong vài phút

<session-config> 
    <session-timeout>Minutes</session-timeout> 
</session-config> 

nhưng bạn programatically cung cấp giá trị trong vài giây

HttpSession session = request.getSession(); 
session.setMaxInactiveInterval(20*60); 
0
1) Timeout in the deployment descriptor (web.xml) 

- rõ giá trị thời gian chờ trong “phút”, kèm với yếu tố “phiên-config”.

Markup

<web-app ...> 
    <session-config> 
     <session-timeout>20</session-timeout> 
    </session-config> 
</web-app> 

Tùy chọn trên được áp dụng cho toàn bộ ứng dụng web, và phiên sẽ được giết bằng container nếu khách hàng không thực hiện bất kỳ yêu cầu sau 20 phút.

2) Timeout with setMaxInactiveInterval() 

- Bạn có thể chỉ định giá trị thời gian chờ theo cách thủ công trong "giây" cho một phiên cụ thể.

Java

HttpSession session = request.getSession(); 
session.setMaxInactiveInterval(20*60); 

Tùy chọn trên chỉ được áp dụng trên phiên mà gọi là “setMaxInactiveInterval()” phương pháp, và phiên sẽ được giết bằng container nếu khách hàng không thực hiện bất kỳ yêu cầu sau 20 phút.

0

bạn có thể ghi đè hết thời gian chờ phiên thông qua "setMaxInactiveInterval()".

HttpSession session = request.getSession(); 
session.setMaxInactiveInterval(20000); 

tại đây sẽ mất thời gian bằng mili giây, có nghĩa là trong 20 giây tiếp theo sẽ hết hạn.

+1

setMaxInactiveInterval nhận giá trị tính bằng giây –

Các vấn đề liên quan