+1 امتیاز
قبل در برنامه نویسی توسط (28 امتیاز)
برچسب گذاری دوباره قبل توسط
چگونه بعد از خروج از حساب کاربری امکان بازگشت به صفحه با کلیک کردن بر روی دکمه بازگشت مرورگر نباشه؟

با اینکه سشن های مربوط رو حذف کردم ولی باز به صفحه قیلی برمیگرده. ولی اگه عملی که کاربر باید ورود کرده باشه، انجام نمیشه.

ممنون

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

مشکل اصلی شما این است که مرورگر بجای اینکه صفحه ای را که کاربر با فشردن دکمه back در خواست می کند را از سرور بیاورد از cache مرورگر می آورد. برای حل این مشکل شما باید به مرورگر بگویید که صفحات JSP مورد نظر شما را cache نکند.

برای این کار در Java EE می توانید یک Filter تعریف کنید و header های لازم برای cache نکردن یک صفحه توسط مرورگر را درون آن قرار دهید:

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse hsr = (HttpServletResponse) res;
    hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
    hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
    hsr.setDateHeader("Expires", 0); // Proxies.
    chain.doFilter(req, res);
}

و فیلتر تعریف شده را درون web.xml ثبت کنید:

<filter>
    <filter-name>noCacheFilter</filter-name>
    <filter-class>com.example.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>noCacheFilter</filter-name>
    <url-pattern>/secured/*.jsp</url-pattern>
</filter-mapping>
قبل توسط (28 امتیاز)
ممنون
بسیار عالی بود
قبل توسط (1.1هزار امتیاز)
خوشحالم که مشکلتون حل شد.

سوالات مشابه

0 امتیاز
0 پاسخ 374 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط 1993 (242 امتیاز)
+1 امتیاز
1 پاسخ 882 بازدید
0 امتیاز
1 پاسخ 790 بازدید
+1 امتیاز
1 پاسخ 437 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+1 امتیاز
2 پاسخ 939 بازدید
+1 امتیاز
1 پاسخ 52.1هزار بازدید
0 امتیاز
1 پاسخ 384 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط HA (347 امتیاز)
...