java登錄攔截器代碼 java登錄攔截器代碼是什么

求JAVA struts攔截器配置代碼

!-- 整合Spring --

創(chuàng)新互聯(lián)專注于忻州企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。忻州網(wǎng)站建設(shè)公司,為忻州等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

constant name="struts.objectFactory" value="spring"/

!-- 開啟使用開發(fā)模式,詳細(xì)錯誤提示 --

constant name="struts.devMode" value="false"/

!-- 指定每次請求到達(dá),重新加載資源文件 --

!-- constant name="struts.i18n.reload" value="true"/ --

!-- 指定每次配置文件更改后,自動重新加載 --

!-- constant name="struts.configuration.xml.reload" value="true"/ --

!-- 指定XSLT Result使用樣式表緩存 --

!-- constant name="struts.xslt.nocache" value="true"/ --

!-- 設(shè)置該應(yīng)用使用的解碼集 --

constant name="struts.i18n.encoding" value="UTF-8"/constant

!-- struts2 中默認(rèn)提供了一些訪問靜態(tài)成員的方式,但是默認(rèn)是關(guān)閉的,所以應(yīng)該在struts2的配置文件中先設(shè)置 --

constant name="struts.ognl.allowStaticMethodAccess" value="true"/

include file="struts-default.xml" /

include file="struts-action.xml" /

---------------------------------------------------

struts-action.xml:

package name="com.lj.actions" extends="struts-default"

!-- 攔截器-驗證用戶登錄 --

interceptors

!-- interceptor name="check" class ="com.lj.interceptor.CheckLoginInterceptor" / --

interceptor name="authority" class="com.lj.interceptor.MyFilterInterceptor"/ !--上面自定義的攔截器類--

interceptor-stack name="myDefault"

interceptor-ref name="authority" !-- 引用攔截器 --

param name="includeMethods"queryByAll,queryByWhere,queryByAdId,queryByAdminAll,queryByWhere2CSV,adCheck,adDelete,delete,save,update,accredit,showInfo,appCheck/param !-- 設(shè)置需要攔截的方法,多個以逗號隔開 --

/interceptor-ref

interceptor-ref name="defaultStack"/interceptor-ref

/interceptor-stack

/interceptors

default-interceptor-ref name="myDefault"/default-interceptor-ref

!-- 全局跳轉(zhuǎn)頁面 --

global-results

result name="error_limit"/jsp/admin/error_limit.jsp/result

result name="list_sys_login"/jsp/admin/list_sys_login.jsp/result

/global-results

!-- 廣告管理——廣告審核 --

action name="AdCheck" class="com.lj.actions.AdCheckAction"

result name="list_ad_sh"/jsp/admin/list_ad_sh.jsp/result

/action

!-- 廣告管理——廣告列表 --

action name="AdList" class="com.lj.actions.AdListAction"

result name="list_ad_ls"/jsp/admin/list_ad_ls.jsp/result

/action

求JAVA攔截器代碼和配置文件!就是每次請求action之前都會執(zhí)行配置的java類

strut2的攔截器的一個例子。。。

攔截器定義,,這里是一個判斷超時的攔截器功能

interceptors

interceptor name="Timeout" class="com.myproject.util.TimeOutInterceptor"/

/interceptors

action定義。。。。。。。。。。。

action name="cf*" method="{1}" class="com.myproject.action.user.ConfigAction"

!-- 引用自定義的攔截器 --

interceptor-ref name="Timeout"

param name="excludeMethods"

Switch,UpdCss !-- action中的這兩個方法生效 --

/param

/interceptor-ref

interceptor-ref name="basicStack"/ !-- struts 內(nèi)置的默認(rèn)攔截器 --

result name="config"/user/config.jsp/result

/result

//攔截器的實現(xiàn)。。。。。。。

package com.myproject.util;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

import java.util.Map;

/**

* 通用攔截器,判斷用戶超時

* @author maodrc

*/

public class TimeOutInterceptor extends MethodFilterInterceptor {

@Override

protected String doIntercept(ActionInvocation ai) throws Exception {

Map sessionMap = ai.getInvocationContext().getSession();

String username = (String) sessionMap.get("username");

if (com.maxneting.util.Util.isNull(username)) {

return "timeout";

} else {

return ai.invoke();

}

}

}

java 攔截器

好像是不行吧!攔截器是攔截客戶端請求和服務(wù)端響應(yīng)的,Action是處理客戶端請求并生成響應(yīng)的,攔截器是工作在兩者之間的,對客戶端的請求攔截,對服務(wù)端的響應(yīng)攔截。

java有什么注解前置前攔截

本文將用簡潔的代碼構(gòu)建一個springboot的攔截器。攔截器的使用很簡單,定義一個自己的攔截器,向配置中添加一下就可以使用。為了方便,之后又引入了注解。

目錄和概述

概述

假設(shè)需求:訪問項目的controller是都要進(jìn)行"token驗證",除了某些像登錄之類的方法。

項目結(jié)構(gòu):

TokenInterceptor.java 自定義攔截器

InterceptorConfig.java 添加攔截器進(jìn)入項目

NoNeedToken.java 自定義注解

TestController.java 測試接口

1、自定義攔截器

在 TokenInterceptor.java 中輸入以下代碼,以下的代碼將生成一個在請求到達(dá)controller前進(jìn)行攔截的攔截器

import com.alibaba.fastjson.JSONObject;

import org.springframework.lang.Nullable;

import org.springframework.stereotype.Component;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.PrintWriter;

import java.util.Arrays;

import java.util.List;

@Component

public class TokenInterceptor implements HandlerInterceptor {undefined

// 假設(shè)現(xiàn)在的token有如下數(shù)據(jù)

List tokenList = Arrays.asList("111", "222", "333");

// 這個方法是在訪問接口之前執(zhí)行的,我們只需要在這里寫驗證登陸狀態(tài)的業(yè)務(wù)邏輯,就可以在用戶調(diào)用指定接口之前驗證登陸狀態(tài)了

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {undefined

// 設(shè)置返回為json格式,使用UTF-8

response.setCharacterEncoding("UTF-8");

response.setContentType("application/json; charset=utf-8");

String token = request.getHeader("token");

PrintWriter out;

// 之后寫你的判斷邏輯:return true是通過攔截器,可以繼續(xù)訪問controller,return false是不通過

if (token == null || !tokenList.contains(token)) {undefined

// 如果失敗了返回{state:"false", msg:"token is null or wrong"}

JSONObject res = new JSONObject();

res.put("state","false");

res.put("msg","token is null or wrong");

out = response.getWriter();

out.append(res.toString());

return false;

}

// 否則返回true 進(jìn)入controller

return true;

}

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {undefined

}

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {undefined

}

}

————————————————

版權(quán)聲明:本文為CSDN博主「魔王別囂張」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:

java如何寫一個防止同賬號不同ip登錄的程序?請給出思路甚至代碼

在數(shù)據(jù)庫表中增加一個字段,記錄用戶登錄的ip,在每次登錄的時候都檢測一下該字段是否為空,如果不為空,那么比較數(shù)據(jù)庫中登錄的ip是否跟當(dāng)前ip相同,如果不同,那么強行登錄的話就將新的ip記錄寫到數(shù)據(jù)庫中。

寫一個過濾器,每次在訪問Action的時候都判斷當(dāng)前的ip和數(shù)據(jù)庫中的是否相同,如果不同,那么就強制下線,這樣就限制了另外一個用戶的訪問。

用戶在自己退出的時候清空數(shù)據(jù)庫中的ip記錄,這樣就能保證不影響下次登錄。

還有一種方式就是在每個頁面都寫一個定時,每隔一定時間就向服務(wù)器發(fā)送一次請求判斷當(dāng)前ip與數(shù)據(jù)庫中保存的ip是否相同,如果不同就強制下線。但是這種方式比較耗費連接。

網(wǎng)頁標(biāo)題:java登錄攔截器代碼 java登錄攔截器代碼是什么
網(wǎng)頁網(wǎng)址:http://muchs.cn/article0/hjeoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站改版全網(wǎng)營銷推廣、品牌網(wǎng)站制作自適應(yīng)網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化