Servlet 内存马 - 从环境搭建 到 复现(还没复现)


成果

先给大家看看成果

材料

  1. IntelliJ IDEA

  1. maven

  1. java jdk


  1. tomcat


tomcat启动的时候是需要一个环境变量的(如果不知道这个是啥.......):

以上请提前学会

开始

教程1:http://helloworld.monster/java_web_project_model_from_create_to_deploy/#%E6%B5%8B%E8%AF%95-helloworld
这个教程的问题是:学到输出index.html之后就不介绍文件路径了
教程2:https://blog.csdn.net/qq_40933663/article/details/90452086
这个没有介绍maven

接下来是我的步骤:

新建工程

E:\IntelliJ-IDEA-workspace下新建Servlet-test作为本次实验的工程文件夹

使用IDEA打开

Servlet-test上右键Add Framework Support

添加maven支持

这样会给你添加好多文件夹

修改一下pox.xml 给你的groupId 起个响亮的名字com.xxxxx

然后继续修改pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0

    com.sanqiushu
    Servlet-test
    1.0-SNAPSHOT

    
    war

    
        
        UTF-8
        UTF-8
        
        1.8
        1.8
    

    

        
        
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        

    
    

点击刷新maven

创建webapp目录

src/main 下创建webapp 目录

因为前面在 pom.xml 配置文件中设置了打包方式为 war 包,/src/main/webapp 目录会自动带上 Web 资源目录(Web Resource Directory)标记

创建 Web.xml 配置文件

打开项目配置

按图示创建 web.xml 配置文件
(注意看黄框部分,就是上一步骤,webapp 会被标记为 Web 资源目录的原因)


但是我不想在这个位置(我也不知道为啥),换成下面这个位置
E:\IntelliJ-IDEA-workspace\Servlet-test\src\main\webapp\WEB-INF\web.xml


编写一个 HelloWorld 页面


webapp下添加一个index.html

编写内容





    
    Index



Hello World !

配置 Tomcat(IDEA 开发测试环境)


这个路径选你自己安装的路径

然后选择Deployment:开发测试选第二个,生产发布选第一个

Tomcat 启动!

等一下会自动打开浏览器,并显示 Hello World !

新建一个Servlet

java下新建一个包名字叫 com.xxxx 最好是跟你最一开始pom.xml 里写的一样

然后在com.sanqiushu 下新建 一个java文件 MyFirstServlet.java


代码如下:

/*
 * @author sanqiushu
 * @create 2021-08-14 14:08
 */
package com.sanqiushu;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

/**
 * servlet
 * 开发者不会去new MyFirstServlet
 */
public class MyFirstServlet extends HttpServlet {
    // 覆盖doGet() / doPost() 方法

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 向浏览器输出内容
        // 设置编码
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("hello, 这是我的第一个Servlet...");
        response.getWriter().write("当前系统时间是:"+new Date());
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}


配置WEB-INF下的web.xml:

<?xml version="1.0" encoding="UTF-8"?>



    
        MyFirstServlet
        com.sanqiushu.MyFirstServlet
    
    
        MyFirstServlet
        /MyFirstServlet
    


Tomcat 启动!(重启)
带上servlet 路径
[http://localhost:8080/Servlet_test_war_exploded/MyFirstServlet]

Nice