Servlet 项目搭建
Drunkbaby Lv6

Servlet 项目搭建

文章重新更新于 2022.9.6,因为后续搭建出了大问题,已修复

Servlet 项目搭建

0x01 前言

看很多大师傅的文章,对分析内存马写的都挺好的,但是都没有说环境怎么怎么搭建,大部分都是引用其他人的。

我决定自己写一篇文章,为正在学习内存马的师傅们避个坑。

0x02 基础环境搭建

  • jdk8u312
  • Maven 3.6.3
  • IDEA 2021.2.1

这里没有借鉴任何其他文章,完全是自己手工搭建了一遍,其实根本没那么复杂。

新建项目,选择 enterprise,这个地方要注意,选择 Web Application,而不是 Rest Service。

下一步这里,什么都不需要选。

后续根本不需要配置什么 web.xml,也不需要添加什么 classes 文件夹,lib 文件夹,根本没必要。

因为我们选择的是 Web Application 4.0,可以直接在类里面用注解配置,比如 Servlet ———— @WebServlet("/servlet"),在访问 /servlet 的时候调用此 Servlet

但是有时候为了分析还是需要加上 web.xml,会简易一点

搭完了之后要用 maven 把 tomcat 的包打进去,很坑。

xml 代码如下

1
2
3
4
5
6
7
8
9
10
<dependency>  
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>8.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>8.5.15</version>
</dependency>

0x03 为什么要重新写一下如何搭建

  • 当时发现太坑了,因为我们如果新建了 classes,并且设置输出,有时候会设置失败的。

遇到的情况是 500 的报错,其实就是没有 .class 输出,这是啥意思呢?

我们平常编译,都是有一个 target 文件夹的,里面放的是 .class 的文件,这个 .class 的文件如果没有,就会报 500 的那个错误,并且报错是 ClassNotFound

所以才会这样,醉了。

第二种搭建方式

更新于 2022-10-28

是在学习狂神 SpringMVC 视频的时候学到的,先起一个项目,然后删除 src 文件夹。

接着新建 module,在 module 里面 add framework,选择 web application 即可。

其实一开始我也是这样创建的,但是坑就坑在,还要导入 jsp 的包,如下

1
2
3
4
5
6
7
8
9
10
11
12
<dependencies>  
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies>

父类的 pom.xml 如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<dependencies>  
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

踩坑

这其实还会有点小问题,有时候 Tomcat 的项目会 404,这是因为没有导入 lib;

创建一个 lib,接着导入包即可。

CSDN 上有很多文章是没有提及这个的,太坑了。

第三种搭建方式

详见 Struts2 搭建的文章,也是一样的,需要寻找 web-app

 评论