发布到外网的web工程必须添加登录过滤器来阻挡一些非法的请求,即只有登录的用户才能对web工程进行请求,否则无论请求什么资源都需要调整到登录页面进行登录操作。这时就需要用到过滤器,其实非常简单,只需要在spring配置文件中加入你自己写的java过滤器即可。我这里的例子是无论请求什么资源都需要运行java过滤器来验证是否已登录,如果未登录则跳转到登录页面。

1、spring需要添加的配置代码

<!-- 登录拦截器 -->
   <mvc:interceptors>
     <mvc:interceptor>
     <mvc:mapping path="/**" />
     <mvc:exclude-mapping path="/loginController/*" />
     <mvc:exclude-mapping path="/js/**" />
     <mvc:exclude-mapping path="/script/**" />
     <mvc:exclude-mapping path="/css/**" />
     <mvc:exclude-mapping path="/img/**" />
     <bean class="com.lnjh.contractlock.interceptor.LoginInterceptor" />
    </mvc:interceptor>
 </mvc:interceptors>

<mvc:exclude-mapping path="/img/**" />表示访问该路径下的资源时不使用过滤器,如访问http://localhost:8080/yourWeb/img/eye.png这时就不会走过滤器方法。

2、 bean节点配置的就是你自己写的过滤器类路径,代码如下:

import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import com.lnjh.contractlock.entity.User;

/**  * 登录拦截器  *  * @author Administrator  *  */

public class LoginInterceptor 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 request, HttpServletResponse response, Object obj) throws Exception {

User user = (User) request.getSession().getAttribute("user");

if (user != null) {

return true;

} else {

ServletContext context = request.getSession().getServletContext();

response.sendRedirect(context.getContextPath() + "/loginController/login");

return false;       }

}

}

Spring MVC 架构的java web工程如何添加登录过滤器的更多相关文章

  1. Tomcat容器运行struts2+spring+mybatis架构的java web应用程序简单分析

    1.具体的环境为 MyEclipse 8.5以及自带的tomcat spring3.0.5 struts2.3.15.1 mybatis3.0.5 2.想弄明白的一些问题 tomcat集成spring ...

  2. 在java web 工程中实现登录和安全验证

    登录验证代码 package security; import java.io.IOException; import javax.servlet.ServletException; import j ...

  3. Spring Boot 2.X(三):使用 Spring MVC + MyBatis + Thymeleaf 开发 web 应用

    前言 Spring MVC 是构建在 Servlet API 上的原生框架,并从一开始就包含在 Spring 框架中.本文主要通过简述 Spring MVC 的架构及分析,并用 Spring Boot ...

  4. 干净win7要做几步才能运行第一个Spring MVC 写的动态web程序

    干净win7要做几步才能运行第一个Spring MVC 写的动态web程序: 1. 下载安装jdk 2. 配置Java环境变量 3. 测试一下第1,2两步是否完全成功:http://jingyan.b ...

  5. 使用 maven 创建 java web 工程

    本文主要讲述使用 maven 命令行的形式来创建  java web 工程 开发环境 jdk 1.7 maven 3.5.0 spring 3.2 tomcat 7 eclipse Mars Rele ...

  6. CRUD using Spring MVC 4.0 RESTful Web Services and AngularJS

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. 用Spring MVC开发简单的Web应用程序

    1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自 ...

  8. java web工程的配置文件

    java web工程的配置文件 1.工程(源码依赖管理) 2.代码生成管理: 3.会话管理:servlet: 4.应用管理: 5.(分布式)资源管理:数据.数据库连接等. pom:源码管理工具 位置: ...

  9. Tomcat设置默认启动项目及Java Web工程设置默认启动页面

    Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tom ...

随机推荐

  1. windos安装maven

    1.下载好maven压缩包,并解压到相应位置,本次安装在D: 2.配置环境变量 MAVEN_HOME=D:\apache-maven-3.0.5 path=%MAVEN_HOME% 3.生成maven ...

  2. python之路--内置常用模块

    一 . 简单的了解模块 你写的每一个py文件都是一个模块. 还有一些我们一直在使用的模块. buildins  内置模块. print, input. random  主要是和随机相关的的内容 ran ...

  3. DAY06、元组、字典、集合

    一.元组 1.定义:参数为for可以循环的对象 t1 = (1, 2)     t2 = tuple((1, 2))     t3 = (1, )        #定义一个只有一个值的元组 2.常用操 ...

  4. jqGrid选中行、格式化、自定义按钮、隐藏

    获取选择一行的id: var id=$('#jqGrid').jqGrid('getGridParam','selrow'); 获取选择多行的id: var ids=$('#jqGrid').jqGr ...

  5. solr单机版搭建

    需要把solr服务器安装到linux环境: 第一步:安装linux.jdk.tomcat. [root@bogon ~]# ll total 8044 -rw-r--r--. 1 root root ...

  6. UVA 11988 Beiju Text

    https://vjudge.net/problem/UVA-11988 题目 你有一个破损的键盘.键盘上所有的键都可以正常工作,但有时候Home键或者End键会自动按下.你并不知道键盘存在这一问题, ...

  7. sklearn训练感知器用iris数据集

    简化版代码 from sklearn import datasets import numpy as np #获取data和类标 iris = datasets.load_iris() X = iri ...

  8. Civil 3D 二次开发 名称模板不能正常工作

    using Autodesk.AECC.Interop.Land; using Autodesk.AECC.Interop.UiLand; using Autodesk.AutoCAD.Applica ...

  9. python 模块之-ffmpeg 中文参数对照表

    a) 通用选项 -L license-h 帮助-fromats 显示可用的格式,编解码的,协议的...-f fmt 强迫采用格式fmt-I filename 输入文件-y 覆盖输出文件-t durat ...

  10. linux缺失gcc的安装方法

    linux安装gcc操作 1.查看linux是否有gcc文件 这个是没有挂载的 2. 使用df,查看系统光盘的挂载位置 3.卸载分区 umount /dev/sr0 4.将redhat系统光盘重新载入 ...