HelloServlet
1、构建一个普通的Maven项目
? 删掉里面的src目录,以后的项目可以在这个项目里面建立Moudel;这个空的工程就是Maven主工程。
? 注意:也可以直接就利用外面大的Maven项目来写,但不利于项目结构化,还有之后如果还需要建立Maven的话,需要全部重新建 立项目并且导入jar包,不如主次(父子)工程来得方便。
2、关于Maven父子工程的理解:
? 父项目中会有
<modules>
<module>servlet-01</module>
</modules>
? 子项目中会有(如果用的比较新的IDEA,可能子项目中没有这个,可以手动添加,而且必须要添加,否则不能用父项目的依赖)
<parent>
<artifactId>javaWeb</artifactId><!--父项目名字-->
<groupId>org.example</groupId><!--工程组id(刚创建项目时有)-->
<version>1.0-SNAPSHOT</version><!--版本,可自动生成-->
</parent>
? 父项目中的jar包子项目能直接使用(好处1)
? Maven项目所需的同样的jar包就只需要在父项目中导入一次(好处2)
例如:
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<!--servlet jar包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<!--jsp jar包 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<!--mysql jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
3、Maven环境优化
1、修改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">
</web-app>
2、将Maven的结构搭建完整
(1)在main目录下面新建java和resources文件夹
(2)分别标注文件夹
4、编写一个Servlet程序
(1)建立相应的文件,编写测试代码
package com.test.servlet;
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.io.PrintWriter;
public class HelloServlet extends HttpServlet {
//由于get或者post只是请求实现的不同方式,可以互相调用,业务逻辑都一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();//响应流
writer.print("Hello Servlet");//前端输出
System.out.println("Hello World");//后端输出
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
(2)建立映射,在web.xml中添加相应代码
<!--注册Servlet-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.test.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>