java内存马_2
前言
今天是内存马和jsp的基础知识
JSP基础
什么是JSP
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
JSP环境
我直接用上次测试Servlet用的就可以了。
具体的搭建方法:
应该是这么选,然后在编辑配置里加个tomcat,在配置好工件,这样就可以了
从这个目录结构中可以看到,java(自己创建的)文件夹可以存放我们的Servlet和Filter,webapp下存放的是index.jsp
注意点:
这一块要加上tomcat,否则接下来用println的时候回出现无法解析的问题
JSP的语法
JSP的代码结构:
1 | <% 代码片段 %> |
具体的例子是这样的
1 | <html> |

JSP声明
声明使用:
1 | <%! 声明 %> |
等价于的XML语句
1 | <jsp:declaration> |
实例
1 | <html> |

直接在脚本里也可以声明
1 | <html> |
JSP表达式
结构:
1 | <%= %> |
xml形式:
1 | <jsp:expression> 表达式</jsp:expression> |
实列
1 | <html> |

JSP注释
1 | <%-- 注释内容 --%> |
JSP指令
jsp的三种指令
JSP隐式对象
JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。
JSP所支持的九大隐式对象:
- request对象:获取HTTp头信息
- response对象:提供客户端响应
- out对象:输出内容到HTML中
- session对象:用来保存用户信息
- application对象:所有用户共享信息
- config对象:Servlet配置对象,用于Servlet和页面的初始化参数
- pageContext对象:JSP的页面容器,用于访问page、request、application和session的属性
- page对象:类似于java类的this关键字,表示当前JSP页面
- exception对象:该对象用于处理JSP文件执行时发生的错误和异常;只有在JSP页面的page指令中指定isErrorPage的取值true时,才可以在本页面使用exception对象。
传统内存马
接下来开始内存马的学习,先来看一下传统的内存马是什么样子的
1 | <% |

但是这个内存马是没有回显的,这里在提供一个有回显的内存马
1 | <% |

Tomcat的三种context
context
首先来介绍一下,什么是context?context的翻译就是上下文的意思,可以看一下Drunkbaby大佬的博客里讲的一个例子,这样方便我们理解。
作用:在一次web请求的过程中,context会记录当前的情形,比如会记录有什么servlet,有几个Filter,有什么listener,请求的路径,请求的参数等等。
ServletContext
ServletContext是Servlet规范中规定的ServletContext接口,一般Servlet都要实现这个接口。
主要的功能:
- 共享数据
- 允许访问资源文件
- 获取初始化参数
- 设置全局上下文属性
- 获取web应用程序信息
- 获取文件路径
- 获取资源路径
ApplicationContext
在Tomcat,ApplicationContext实现了ServletContext规范定义的一些方法,例如addServlet,addFilter等
StandardContext
讲这个Context,我们直接先把师傅的图放这里(从总的角度说一下,应该就理解了)
实际上对资源的各种操作是调用了StandardContext中的方法。
总的说一下:ServletContext的实现类是ApplicationContextFacade类(也就是ApplicationContext的门面类,有它才能进行ApplicationContext里的操作)。在ApplicationContext中,我们对context容器中各种资源进行操作时,最终调用的还是StandardContext中的方法,和我们上面说的一样,StandardContext是Tomcat中负责与底层交互的Context。
