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"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sanqiushu</groupId>
<artifactId>Servlet-test</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 设置打包方式 -->
<packaging>war</packaging>
<properties>
<!-- 设置编码方式 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- 设置 JDK 版本 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 添加 servlet 依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
点击刷新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
编写内容
<!-- src/main/webapp/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<h3>Hello World !</h3>
</body>
</html>
配置 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"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>MyFirstServlet</servlet-name>
<servlet-class>com.sanqiushu.MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyFirstServlet</servlet-name>
<url-pattern>/MyFirstServlet</url-pattern>
</servlet-mapping>
</web-app>
Tomcat 启动!(重启)
带上servlet 路径
[http://localhost:8080/Servlet_test_war_exploded/MyFirstServlet]
Nice
本文来自博客园,作者:Nestar,转载请注明原文链接:https://www.cnblogs.com/Nestar/p/15140782.html