Servlet 内存马 - 从环境搭建 到 复现(还没复现)
成果
先给大家看看成果
材料
- IntelliJ IDEA
- maven
- java jdk
- 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