第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()

相关推荐
卸任3 小时前
Vibe coding工具使用心得
前端·ai编程
brien93 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance4 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M4 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写4 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李4 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易4 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
风骏时光牛马4 小时前
前沿视界
前端
kyriewen4 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员
陈随易5 小时前
3000 万人在用的翻译插件,重写一遍就是一门生意
前端·后端·程序员