精华内容
下载资源
问答
  • java 登录拦截器

    2021-02-28 16:20:39
    首先创建一个FilterServlet类 下面代码package ...import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.Se...

    首先创建一个FilterServlet类  下面代码

    package com.group.users.util;

    import java.io.IOException;

    import javax.servlet.Filter;

    import javax.servlet.FilterChain;

    import javax.servlet.FilterConfig;

    import javax.servlet.ServletException;

    import javax.servlet.ServletRequest;

    import javax.servlet.ServletResponse;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import javax.servlet.http.HttpSession;

    import com.group.users.entity.Users;

    public class FilterServlet implements Filter {

    public void destroy() {

    }

    public void doFilter(ServletRequest req, ServletResponse res,

    FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) req;

    HttpServletResponse response = (HttpServletResponse) res;

    HttpSession session = request.getSession();

    Users user = (Users) session.getAttribute("users");

    if(user!=null){

    chain.doFilter(request, response);

    }else{

    request.getRequestDispatcher("/index.jsp").forward(request, response);

    }

    }

    public void init(FilterConfig filterConfig) throws ServletException {

    }

    }

    下面wed代码

    FilterServlet

    com.group.users.util.FilterServlet

    FilterServlet

    /admin/*

    展开全文
  • 登录拦截器(通用版)

    2017-08-01 13:42:23
    登录拦截器(通用版)
  • 1.拦截器springmvc中的拦截器实现了handlerinterceptor接口,通常使用与身份认证,授权和校验,模板视图,统一处理等;public class handerinterceptor1 implements handlerinterceptor {@overridepublic void ...

    1.拦截器

    springmvc中的拦截器实现了handlerinterceptor接口,通常使用与身份认证,授权和校验,模板视图,统一处理等;

    public class handerinterceptor1 implements handlerinterceptor {

    @override

    public void aftercompletion(httpservletrequest arg0,

    httpservletresponse arg1, object arg2, exception arg3)

    throws exception {

    }

    @override

    public void posthandle(httpservletrequest arg0, httpservletresponse arg1,

    object arg2, modelandview arg3) throws exception {

    }

    @override

    public boolean prehandle(httpservletrequest arg0, httpservletresponse arg1,

    object arg2) throws exception {

    return true;

    }

    }

    在拦截器中有三个方法 :

    prehandler :在进入handler方法之前执行了,使用于身份认证,身份授权,登陆校验等,比如身份认证,用户没有登陆,拦截不再向下执行,返回值为 false ,即可实现拦截;否则,返回true时,拦截不进行执行;

    posthandler : 进入handler方法之后,返回modelandview之前执行,使用场景从modelandview参数出发,比如,将公用的模型数据在这里传入到视图,也可以统一指定显示的视图等;

    afterhandler : 在执行handler完成后执行此方法,使用于统一的异常处理,统一的日志处理等;

    2.拦截器的配置

    拦截器的配置有两种方式实现 :

    (1)针对某个handlermapping (controller)的 配置

    springmvc拦截器针对某个controller进行拦截设置,如果在某个handlermapping中配置拦截,经过该handlermapping映射成功的handler最终使用该拦截器;

    (2)类似全局的配置

    可以配置类似全局的拦截器,springmvc框架将配置的类似全局拦截器注入到每个handlermapping中;

    配置实现 :

    (3)在一个工程中,可以配置多个拦截器,使用多个拦截器,则要注意的是 :

    多个拦截器使用的时候,prehandler是顺序执行的,而posthandler和afterhandler是倒序执行的;

    所以 :

    如果统一日志处理器拦截器,需要改拦截器prehandler一定要返回true,且将它放在拦截器配置的第一个位置;

    如果登陆认证拦截器,放在拦截器的配置中的第一个位置(有日志处理的话,放在日志处理下面);

    如果有权限校验拦截器,则放在登陆拦截器之后,因为登陆通过后,才可以进行校验权限;

    3.示例:

    场景描述 :用户点击查看的时候,我们进行登陆拦截器操作,判断用户是否登陆? 登陆,则不拦截,没登陆,则转到登陆界面;

    图示 :

    f5d42e182de7533cc57d04cbdfdae4a6.png

    3.1 controller 登陆业务实现

    @requestmapping("/clientlogin")

    public string clientlogin(httpsession httpsession,string username,string password){

    if(username.equals("yuan")&&password.equals("123456")){

    //登陆成功

    httpsession.setattribute("username",username);

    return "forward:clientslist.action";

    }else{

    //登陆失败

    return "forward:login.jsp";

    }

    }

    3.2 controller 登出业务实现

    @requestmapping("/clientloginout")

    public string clientloginout(httpsession httpsession){

    httpsession.invalidate();

    return "forward:clientslist.action";

    }

    3.3 拦截器实现

    在这里实现用户拦截实现是:通过判断是否是编辑查看的页面,如果是,判断session中的用户名存在不存在,就可以了;

    package cn.labelnet.ssm.filter;

    import javax.servlet.http.httpservletrequest;

    import javax.servlet.http.httpservletresponse;

    import javax.servlet.http.httpsession;

    import org.springframework.web.servlet.handlerinterceptor;

    import org.springframework.web.servlet.modelandview;

    /**

    * 登陆拦截器

    * 场景:用户点击查看的时候,我们进行登陆拦截器操作,判断用户是否登陆?

    * 登陆,则不拦截,没登陆,则转到登陆界面;

    * todo

    * 作者:原明卓

    * 时间:2016年1月8日 下午3:25:35

    * 工程:springmvcmybatis1demo

    */

    public class loginhandlerintercepter implements handlerinterceptor {

    @override

    public void aftercompletion(httpservletrequest request,

    httpservletresponse response, object arg2, exception arg3)

    throws exception {

    }

    @override

    public void posthandle(httpservletrequest arg0, httpservletresponse arg1,

    object arg2, modelandview arg3) throws exception {

    }

    @override

    public boolean prehandle(httpservletrequest request, httpservletresponse arg1,

    object arg2) throws exception {

    string requesturi = request.getrequesturi();

    if(requesturi.indexof("editclientifo.action")>0){

    //说明处在编辑的页面

    httpsession session = request.getsession();

    string username = (string) session.getattribute("username");

    if(username!=null){

    //登陆成功的用户

    return true;

    }else{

    //没有登陆,转向登陆界面

    request.getrequestdispatcher("/login.jsp").forward(request,arg1);

    return false;

    }

    }else{

    return true;

    }

    }

    }

    3.4 拦截器配置实现

    3.5 登陆页面实现

    string path = request.getcontextpath();

    string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";

    %>

    用户登陆

    姓名:

    密码:

    3.6 列表信息页面

    客户信息管理

    ${username}

    退出

    客户信息管理

    编号姓名代码生日家庭住址现居住地联系方式紧急联系方式注册日期操作 ${c.id} ${c.username} ${c.client_certificate_no} ${c.born_date} ${c.family_register_address} ${c.now_address} ${c.contact_mode} ${c.urgency_contact_mode} ${c.create_date} 查看

    以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持萬仟网!

    如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

    展开全文
  • Java拦截器

    2021-03-01 08:03:52
    拦截器,主要用于拦截前端请求,常用于登录检查。下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:配置方式:1、web.xml中配置监听器,对于所有的/admin开头的...

    拦截器,主要用于拦截前端请求,常用于登录检查。

    下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:

    配置方式:

    1、web.xml中配置监听器,对于所有的/admin开头的请求,都走com.blog.interceptor.LoginInterceptor这个拦截器。

    2、再看com.blog.interceptor.LoginInterceptor的实现代码:

    public class LoginInterceptor implements HandlerInterceptor {

    @Override

    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {

    SysUser currentUser = SessionHelper.getCurrentUser(arg0);

    if (currentUser == null) {

    // 拦截,重定向到登陆页面

    // 需要加上当前请求路径

    arg1.sendRedirect(arg0.getContextPath() + "/Login/loginpage.do");

    return false;

    }

    return true;

    }

    @Override

    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)

    throws Exception {

    // TODO Auto-generated method stub

    }

    @Override

    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)

    throws Exception {

    // TODO Auto-generated method stub

    }

    }

    对于客户端的每次登录,都先记录登录用户的用户名信息,对于每次请求,获取session中的用户信息,如果用户信息为空,则认为该用户未登录,则跳转到登录页面。

    注解方式:

    拦截类是一样的,只需要增加配置类。

    //页面配置类,不再使用xml配置需要拦截打请求

    @Configuration

    public class WebMvcConfg extends WebMvcConfigurationSupport {

    @Autowired

    private LoginInterceptor loginInterceptor;// 需要使用的拦截器,对于所有admin开头的请求都需要进行登录拦截

    // 拦截器链

    @Override

    public void addInterceptors(InterceptorRegistry registry) {

    // addPathPatterns 用于添加拦截规则

    // excludePathPatterns 用于排除拦截

    registry.addInterceptor(loginInterceptor).addPathPatterns("/admin/**")

    .excludePathPatterns("/admin/**/exportUser","/admin/**/exportAllUser");

    }

    // 处理静态资源

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

    }

    }

    展开全文
  • 登陆为例子...............public class LoginFilter implements Filter {@Overridepublic void destroy() {}@Overridepublic void init(FilterConfig arg0) throws ServletException {}@Overridepublic void ...

    以登陆为例子...............

    public class LoginFilter implements Filter {

    @Override

    public void destroy() {

    }

    @Override

    public void init(FilterConfig arg0) throws ServletException {

    }

    @Override

    public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2)

    throws IOException, ServletException {

    HttpServletResponse response = (HttpServletResponse) arg1;

    HttpServletRequest request=(HttpServletRequest)arg0;

    HttpSession session = request.getSession(true);

    String loginName = (String) session.getAttribute("loginName");//

    String url=request.getRequestURI();

    if(loginName==null || loginName.equals(""))

    {

    //判断获取的路径不为空且不是访问登录页面或执行登录操作时跳转

    if(url!=null && !url.equals("") && ( url.indexOf("Login")<0 && url.indexOf("login")<0 ))

    {

    response.sendRedirect("login.jsp");

    return ;

    }

    }

    //已通过验证,用户访问继续

    arg2.doFilter(arg0, arg1);

    }

    }

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

    web.xml

    LoginFilter

    onlyfun.filter.LoginFilter

    LoginFilter

    /WEB-INF/*

    LoginFilter

    *.jsp

    到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!

    展开全文
  • /*** 自定义登录拦截器 *@authorV_PS68C7 **/@Slf4j @Componentpublic class LoginInterceptor extends BaseController implementsHandlerInterceptor { @AutowiredprivateRedisService redisService;/*** 在请求...
  • java开发中,拦截器使用是很普遍的,最常用的就是登陆拦截了,然后并不是所有的请求我们都需要拦截,比如index页面的请求我们是不拦截的.通常情况下我们有两种方式:先贴出来springboot使用拦截器的case:1.自定义拦截器...
  • 过滤(Filter)Servlet中的过滤Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的...
  • 通常我们在点击某个按钮的时候,对某个对象进行操作,是需要登陆才能做的,这时候就需要一个拦截器对某个方法进行拦截,比如你在一个图书管理中心中你要借书,这时候你就会被要求出示借书证,管理员才能借书给你。...
  • [java]代码库package com.liang.bike.interceptor;import com.liang.bike.bean.base.UserBase;import org.apache.log4j.Logger;import org.springframework.web.servlet.HandlerInterceptor;import org.spring...
  • 本文将用简洁的代码构建一个springboot的拦截器拦截器的使用很简单,定义一个自己的拦截器,向配置中添加一下就...项目结构:TokenInterceptor.java 自定义拦截器InterceptorConfig.java 添加拦截器进入项目NoN...
  • java 拦截器

    2021-03-16 01:22:49
    一、前言这是一篇关于 java 拦截器的文章,是我的写 java web 所遇见的问题。当我们写好一个网站,必须要通过登陆页面才可以进入这个系统。那么我们就得写个 java 拦截器,如果是通过登录进入系统的用户,那么这样的...
  • 具体代码如下:import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang....
  • 一、应用场景一般前后端分离的项目需要处理跨域问题,如果在拦截器中做的话可以,但是会有一些路径不进行拦截,比如登陆,token换取等等,但是呢,如果这些路径设置了不进行拦截如下所示:注入类:@Configuration...
  • 代码部分: 1、在所有的网页加载的时候都会经过拦截器,在springmvc中都会经过preHandle,所以这里就判断用户是否登录就行了,因为登陆后session中都会存放值,所以我们把值取出来进行判断就行了,值得注意的是,这...
  • 过滤Servlet中的过滤Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到...
  • 用户登陆 java后台处理(拦截器处理) 上一篇用户登录java后台处理(AOP)文章,一开始的普通处理很麻烦,但是其本质也是通过请求得到的session来验证,拦截器处理也是在其本质上进行一系列的优化,也减少了不少了...
  • 1.什么是拦截器? (1)在AOP中用于在某个方法或字段被访问之前,进行拦截然后再之前货之后加入某些操作。拦截是AOP的一种实现策略。 (2)拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者定义一个...
  • Java三大器之拦截器(Interceptor)的实现原理及代码示例 Java三大器:过滤器、监听器、拦截器对比 过滤器(Filter) 监听器(Listener) 拦截器(Intercepter) 关注的点 Web请求 系统级别参数、...
  • 展开全部java web 过滤器跟拦截器的区别和使用32313133353236313431303231363533e4b893e5b19e31333361326265分别介绍如下:1、过滤器的使用Filter主要对客户端的请求和服务器的响应进行过滤,使用场景:客户端的请求...
  • 浅析java中 Spring MVC 拦截器作用及其实现发布于 2020-3-8|复制链接本篇文章主要介绍了java中SpringMVC 拦截器的使用及其实例,需要的朋友可以参考拦截器的实现1、编写拦截器类实现HandlerInterceptor接口;...
  • 拦截器在invocation.invoke()之前的代码,将会在Action之前被依次执行,而在invocation.invoke ()之后的代码,将会在Action之后被逆序执行? 可以简化成下面两段代码: ---------------------------------- ...
  • 以上说明来源自网络,以下代码来源自公司实际使用的拦截器: 首先是加载类: import java.util.Enumeration; import java.util.Map; import java.util.ResourceBundle; import java.util.concurrent....
  • 这一点,是拦截器无法做到的。在Java Web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或 者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求...
  • java 拦截器的作用?

    千次阅读 2019-05-23 16:31:28
    1.拦截器都是做什么的? 做的事和请求和响应有关。(比如前端的css或者一些加载的路径都会走这个拦截器) 访问日志(记录访客的ip,来源),在线统计人数,字符集转换,身份验证 可以不破坏你的业务逻辑在你的业务...
  • 一、拦截器1、拦截器小介拦截器的功能类似于web.xml文件中的Filter,能对用户的请求进行拦截,通过拦截用户的请求来实现对页面的控制。拦截器是在Struts-core-2.2.3.jar中进行配置的,原始的拦截器是在struts-...
  • 开发者可以自己定义一些拦截器(必须实现HandlerInterceptor)来实现特定的功能(2)过滤器与拦截器拦截器是AOP思想的具体应用。过滤器:servlet规范的一部分,任何javaweb工程都可以使用,在url-pattern中配置了/*之后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,815
精华内容 9,926
关键字:

java登陆拦截器

java 订阅