关于将struts2框架下,使自定义过滤器对部分的action(一个action或多个action)请求忽略的方法
生活随笔
收集整理的這篇文章主要介紹了
关于将struts2框架下,使自定义过滤器对部分的action(一个action或多个action)请求忽略的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于將struts2框架下,使自定義過濾器對部分的action請求忽略的方法
首先需要了解一個方法
request.getServletPath()
他將返回一個當前請求的路徑的醉詳細名稱
例如對路徑htt p://stuts/sss/test.action
返回"/test.action"
判斷一下就好
判斷情況有兩種
一種只有一個需要忽略的路徑,
一種有多個需要忽略的路徑,
當然第二中是全面的,但有個缺點,需要輔助數組和標志,與循環判斷,相比第一種,他只是一種解決辦法罷了,可能還有更優,我沒想出來
1(只有一個需要忽略的路徑,)filter如下
2.對忽略多個action:
filter如下:
@Overridepublic void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)throws IOException, ServletException {// TODO 自動生成的方法存根HttpServletRequest req = (HttpServletRequest) arg0;// 忽略登錄頁面// 不能簡單使用或表達式判斷,不然只認第一個路徑,所以方法如下**// 要忽略的路徑數組String ignore[] = { req.getServletPath(), "/relogin.action", "/login.action" };// 多個路徑判斷忽略boolean flag = true;for (int i = 1; i < ignore.length; i++)if (ignore[0].equals(ignore[i])) {flag = false;break;}System.out.print(flag);// 忽略后操作**if (flag) {if (req.getSession().getAttribute("user") == null || req.getSession().getAttribute("user").equals("")) {// 重定向不含struts標簽的其他頁面arg0.getRequestDispatcher("/call/loginout.html").forward(arg0, arg1);}} else {// 登錄間隔最長時長默認30分鐘req.getSession().setMaxInactiveInterval(60 * 30);}arg2.doFilter(arg0, arg1);}總結
以上是生活随笔為你收集整理的关于将struts2框架下,使自定义过滤器对部分的action(一个action或多个action)请求忽略的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端三种消息框alert,confirm
- 下一篇: javaweb使用 数据库连接池 DB