第42天:Web开发-JavaEE应用&Servlet技术&路由配置&生命周期&过滤器Filter&监听器Listen

#知识点
1、安全开发-JavaEE-Servlet技术

2、安全开发-JavaEE-监听器&过滤器



参考:

https://mp.weixin.qq.com/s/c_4fOTBKDcByv8MZ9ayaRg

https://blog.csdn.net/qq_52173163/article/details/121110753

一、Servlet

Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。本章内容详细讲解了web开发的相关内容以及servlet相关内容的配置使用,是JAVAEE开发的重中之重。

二、JavaEE-IDEA开发

安装IDEA,激活后安装开发插件

安装JDK,Tomcat,新建项目并配置

1、创建和使用Servlet

①创建一个类继承HttpServlet

下面的"IndexServlet"就是一个创建的类

②web.xml配置Servlet路由

post请求

③WebServlet配置Servlet路由

2、Servlet生命周期

快捷键:alt+insert->快速调出内置方法

写入内置方法(init service(doget dopost等) destroy )

生命周期:先执行init()->service方法(doget,dopost,doput)->destroy()

3、处理接受和回显

get请求传参,数据回显

●HttpServletRequest是ServletRequest的子接口

getParameter(name) --- String 通过name获得值

getParameterValues --- String[ ] 通过name获得多值

●HttpServletResponse是ServletResponse的子接口

setCharacterEncoding() 设置编码格式

setContentType() 设置解析语言

getWriter() 获得一个PrintWriter字符输出流输出数据

PrintWriter 接受符合类型数据

三、JavaEE-过滤器-Filter

Filter被称为过滤器,过滤器实际上就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或Servlet处理,通常都是用来拦截request进行处理的,也可以对返回的 response进行拦截处理。开发人员利用filter技术,可以实现对所有Web资源的管理,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

1、创建过滤器

2、过滤器内置方法

init doFilter destroy

访问路由/index

3、过滤器触发流程

在过滤器Filter里面设置过滤

重新启动,XssFilter被初始化

传入正常参数,无问题

传入xss恶意语句

路由配置

@WebFilter("/xss")

<filter>

<filter-name>xssFilter</filter-name>

<filter-class>com.example.filter.xssFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>xssFilter</filter-name>

<url-pattern>/xss</url-pattern>

</filter-mapping>

4、过滤器安全场景

Payload检测,权限访问控制,红队内存马植入,蓝队清理内存马等

内存马参考:https://mp.weixin.qq.com/s/hev4G1FivLtqKjt0VhHKmw

5、案例演示

xss攻击的检测,管理页面的cookie检测

四、JavaEE-监听器-Listen

参考:https://blog.csdn.net/qq_52797170/article/details/124023760

-监听ServletContext、HttpSession、ServletRequest等域对象创建和销毁事件

-监听域对象的属性发生修改的事件

-监听在事件发生前、发生后做一些必要的处理

1、创建监听器

2、监听器内置方法

3、监听器触发流程

@WebListener

<listener>

.......

</listener>

4、监听器安全场景

代码审计中分析执行逻辑触发操作,红队内存马植入,蓝队清理内存马等

5、案例演示

session存在的监听

创建一个类似管理界面的类AdminServlet

编写SessionListen类里面的代码

配置路由

启动:

获取session后访问路由/admin

销毁session后访问路由/admin

总结:

a、熟练servlet,Filter过滤器,listen监听器操作

b、熟练两种路由配置方式操作

c、重点理解Servlet生命周期

生命周期:先执行init()->service方法(doget,dopost,doput)->destroy()

相关推荐
大模型真好玩2 分钟前
深入浅出LangChain AI Agent智能体开发教程(四)—LangChain记忆存储与多轮对话机器人搭建
前端·人工智能·python
帅夫帅夫27 分钟前
深入理解 JWT:结构、原理与安全隐患全解析
前端
Struggler28136 分钟前
google插件开发:如何开启特定标签页的sidePanel
前端
爱编程的喵1 小时前
深入理解JSX:从语法糖到React的魔法转换
前端·react.js
代码的余温1 小时前
CSS3文本阴影特效全攻略
前端·css·css3
AlenLi1 小时前
JavaScript - 策略模式在开发中的应用
前端
xptwop1 小时前
05-ES6
前端·javascript·es6
每天开心1 小时前
告别样式冲突:CSS 模块化实战
前端·css·代码规范
wxjlkh1 小时前
powershell 批量测试ip 端口 脚本
java·服务器·前端
海底火旺1 小时前
单页应用路由:从 Hash 到懒加载
前端·react.js·性能优化