java登录拦截器代码 java登录拦截器代码是什么

求JAVA struts拦截器配置代码

!-- 整合Spring --

创新互联专注于忻州企业网站建设,自适应网站建设,商城网站定制开发。忻州网站建设公司,为忻州等地区提供建站服务。全流程按需求定制设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

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

!-- 开启使用开发模式,详细错误提示 --

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

!-- 指定每次请求到达,重新加载资源文件 --

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

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

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

!-- 指定XSLT Result使用样式表缓存 --

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

!-- 设置该应用使用的解码集 --

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

!-- struts2 中默认提供了一些访问静态成员的方式,但是默认是关闭的,所以应该在struts2的配置文件中先设置 --

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 !-- 设置需要拦截的方法,多个以逗号隔开 --

/interceptor-ref

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

/interceptor-stack

/interceptors

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

!-- 全局跳转页面 --

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之前都会执行配置的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 内置的默认拦截器 --

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

/result

//拦截器的实现。。。。。。。

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 拦截器

好像是不行吧!拦截器是拦截客户端请求和服务端响应的,Action是处理客户端请求并生成响应的,拦截器是工作在两者之间的,对客户端的请求拦截,对服务端的响应拦截。

java有什么注解前置前拦截

本文将用简洁的代码构建一个springboot的拦截器。拦截器的使用很简单,定义一个自己的拦截器,向配置中添加一下就可以使用。为了方便,之后又引入了注解。

目录和概述

概述

假设需求:访问项目的controller是都要进行"token验证",除了某些像登录之类的方法。

项目结构:

TokenInterceptor.java 自定义拦截器

InterceptorConfig.java 添加拦截器进入项目

NoNeedToken.java 自定义注解

TestController.java 测试接口

1、自定义拦截器

在 TokenInterceptor.java 中输入以下代码,以下的代码将生成一个在请求到达controller前进行拦截的拦截器

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

// 假设现在的token有如下数据

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

// 这个方法是在访问接口之前执行的,我们只需要在这里写验证登陆状态的业务逻辑,就可以在用户调用指定接口之前验证登陆状态了

@Override

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

// 设置返回为json格式,使用UTF-8

response.setCharacterEncoding("UTF-8");

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

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

PrintWriter out;

// 之后写你的判断逻辑:return true是通过拦截器,可以继续访问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 进入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

}

}

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

版权声明:本文为CSDN博主「魔王别嚣张」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

java如何写一个防止同账号不同ip登录的程序?请给出思路甚至代码

在数据库表中增加一个字段,记录用户登录的ip,在每次登录的时候都检测一下该字段是否为空,如果不为空,那么比较数据库中登录的ip是否跟当前ip相同,如果不同,那么强行登录的话就将新的ip记录写到数据库中。

写一个过滤器,每次在访问Action的时候都判断当前的ip和数据库中的是否相同,如果不同,那么就强制下线,这样就限制了另外一个用户的访问。

用户在自己退出的时候清空数据库中的ip记录,这样就能保证不影响下次登录。

还有一种方式就是在每个页面都写一个定时,每隔一定时间就向服务器发送一次请求判断当前ip与数据库中保存的ip是否相同,如果不同就强制下线。但是这种方式比较耗费连接。


本文名称:java登录拦截器代码 java登录拦截器代码是什么
本文路径:http://cdiso.cn/article/hjeoio.html

其他资讯