登录拦截器实现|学习笔记

简介: 史上最优惠活动:阿里云企业云服务器全场2折起

开发者学堂课程【SpringMVC框架入门:登录拦截器实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/22


登录拦截器实现

目录

一.如果被拦截-能否到达指定的页面?

二.拦截器应用--登录拦截器

三.拦截器的配置

1.如果被拦截-能否到达指定的页面?
使用HttpServletResposne或者HttpServletRequest可以实现转发或重定向

//在请求处理的方法之前执行
//如果返回true 那么执行下一个拦截器,如果返回false那么不执行下一个拦截器
@Override
public boolean preHandle(HttpServletReguest request ,
HttpServletigresponse response,object handler)
throws Exception {
System.out,println-(--------处理前
");
response.sendRedirect(reguest.getContextPath()+"/index.isp");
return false;

}

2.拦截器应用--登录拦截器

public class LoginInterceptor implements HandlerInterceptorf

//允许哪些url不被拦截,哪些需要被拦截
private List<String> allowedPass;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws
Exception{
String url=request.getRequestJRL().toString();
//先判断session中是否有
Object user =
request. getSession().getAttribute("user");
if(user!=null)
return true ;
for(String temp:?llowedPass){
if(url.endsWith(temp))({
return true;
}

Response.sendRedirect(request.getContextPath()+'/login.jsp");

return false;

@Override
publie void postHandle(Http5ervletReauest request,
HttpServlet Respense response,Object handler,

ModelAndVicw modclAndVicw) throws Exception{

}
@Override
public vold afterConpletion(HttpServletRequest request,
HttpSeruletResponse response, 0bject handler,
Exception ex)

throw Exception {

}
publie void setAllouedPass(list<string> allowedPass) {

This.allowedPass = allowedPass;

}

3.拦截器的配置

<!拦截器的配置--》

<mvc interreptors>

<mvc interscepter>
<!--包括路径及其子路径- 拦截所有controller

如果是/admin/*拦截的是/admin/add,/admin/list
etc./admin/user/add不被拦截
如果是/alnin/**-拦截:
/admin/add,/admin/list,/admin/user/add
<mvc:mapping path="/product/*"/》
<mvc:mapping path="/cart/*"/>-->
<mvc:mapping path="/*"/>
<l--对应的拦截器-->
<bean class="cn.sxt.interceptor.LoginInterceptor">

<property name "allowedpass">
<list>
<value>1ogin,do.</value>
</list>

</property>

相关文章
|
程序员 测试技术
程序员的“Bug之旅”:为何无法一次性写出完美代码?
程序员在软件开发过程中难以一次性写出完美代码,需要不断修改和调试,即“改Bug”,这是由多个因素共同作用的结果。技术层面的复杂性、管理和流程上的不足以及个人能力和认知的局限性都是导致这一现象的重要原因。然而,这并不意味着无法避免或改进。通过加强需求管理、建立有效的版本控制和测试机制、推动团队知识共享以及鼓励代码审查和自我反思等措施,可以降低改Bug的频率和成本,提高软件开发的效率和质量。辩证地看待这一问题,既要理解其存在的合理性,也要积极寻求改进之道,以实现更好的产品和服务。
544 2
|
机器学习/深度学习 人工智能 搜索推荐
AIGC的五个特点
【1月更文挑战第11天】AIGC的五个特点
1491 3
AIGC的五个特点
|
11月前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
量子技术 数据安全/隐私保护 芯片
量子加密技术的成本高吗?
量子加密技术的成本高吗?
511 59
|
11月前
|
安全 Java 程序员
面试直击:并发编程三要素+线程安全全攻略!
并发编程三要素为原子性、可见性和有序性,确保多线程操作的一致性和安全性。Java 中通过 `synchronized`、`Lock`、`volatile`、原子类和线程安全集合等机制保障线程安全。掌握这些概念和工具,能有效解决并发问题,编写高效稳定的多线程程序。
317 11
|
存储 缓存 算法
C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力
本文探讨了C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力。文章还分析了数据结构的选择与优化、算法设计的优化策略、内存管理和代码优化技巧,并通过实际案例展示了C语言在排序和图遍历算法中的高效实现。
399 2
|
安全 量子技术 数据安全/隐私保护
量子计算硬件:超导量子比特的最新进展
【10月更文挑战第30天】量子计算作为信息技术的前沿领域,超导量子比特作为其核心组件,近年来取得了显著进展。本文将探讨超导量子比特的原理、制造、性能提升及未来展望,展示其在量子计算中的重要作用和潜力。
|
存储 容灾 Cloud Native
阿里云ClickHouse企业版正式商业化,为开发者提供容灾性更好、性价比更高的实时数仓
2024年4月23日,阿里云联合 ClickHouse Inc. 成功举办了企业版商业化发布会。阿里云 ClickHouse 企业版是阿里云和 ClickHouse 原厂 ClickHouse. Inc 独家合作的存算分离的云原生版本,支持资源按需弹性 Serverless,帮助企业降低成本的同时,为企业带来更多商业价值。
1024 1
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
362 0