当前位置: 首页 > news >正文

【JavaEE】Servlet

文章目录

  • 一、Servlet 是什么
  • 二、如何创建Servlet程序
    • 1、创建项目
    • 2、引入依赖
    • 3、创建目录
    • 4、编写代码
    • 5、打包程序
    • 6、部署程序
    • 7、验证程序

一、Servlet 是什么

二、如何创建Servlet程序

1、创建项目

2、引入依赖

Maven 项目创建完后,会自动生成一个 pom.xml 的文件
我们需要在 pom.xml 中引入 Servlet API 所需要的 jar 包

下面的 jar 包我直接复制在这里,或者你也可以跟着下面的步骤自己查询

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope>
</dependency>

引入 Servlet API 所需要的 jar 包的步骤

  1. 在中央仓库 https://mvnrepository.com/ 中直接搜索 Servlet,一般第一个就是

  2. 选择版本 3.1.0

Servlet 版本要和 Tomcat 对应
如果我们使用 Tomcat 8.5,那么就需要使用 Servlet 3.1.0
可以在 http://tomcat.apache.org/whichversion.html 查询版本对应关系

  1. 把中央仓库中提供的 XML 复制到 pom.xml 中

修改后的 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>org.example</groupId><artifactId>hello_servlet</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency></dependencies>
</project>

3、创建目录

当项目创建好之后,IDEA 会自动帮我们创建好一些目录;如:

但这些目录还不够,我们还需要创建一些其他的目录/文件:
(1)创建 webapp 目录

(2)创建 WEB-INF 目录

(3)创建 web.xml 文件

(4)编写 web.xml 文件

往 web.xml 文件中拷贝如下代码:

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app><display-name>Archetype Created Web Application</display-name>
</web-app>

4、编写代码

在 java 目录中创建 HelloServlet 类,(直接在类中写 doGet 选择会出现如下代码,再修改一些代码,这是比较快捷的方式)

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 自动生成的调用父类的代码删除//super.doGet(req, resp);// 这个代码是打印在 Tomcat 的控制台上System.out.println("hello world");// 这个打印是打印在响应报文上,显示到页面上// 就是把 hello world 字符串作为响应报文的 body 了, 浏览器就会把这个 body 显示在页面上resp.getWriter().write("hello world");}
}

5、打包程序

使用 Maven 打包,打开 Maven 窗口,一般在页面右侧(找不到可以通过 菜单 -> View -> Tool Window -> Maven 打开)

(1)Maven->s->package

6、部署程序

7、验证程序

相关文章:

  • MFC:初步理解序列化与反序列化(含代码实现)
  • 【机器学习】之 K-最近邻(KNN)算法原理及实现
  • 【JAVA WEB实用与优化技巧】如何使用本地.bat/.sh脚本快速将服务发布到测试环境?
  • NVIDIA发布重磅AI创新,黄仁勋在COMPUTEX大会预示计算未来
  • 面向对象程序设计之从C到C++的初步了解
  • 奶茶店、女装店、餐饮店是高危创业方向,原因如下:
  • 一个知识问答系统,用户的选择决定接下来出现的问题,且下一个问题的呈现取决于前面几个问题的回答
  • 工业4.0利器:MES系统
  • 在一个定义好的数据对象(class)中,后续更新时只更新其中部分数据,其余部分会恢复初始设置吗
  • Amazon云计算AWS(四)
  • typescript --object对象类型
  • 开发和渗透偷懒利器utools
  • 鲁教版七年级数学下册-笔记
  • OCR图片转Excel表格:没结构化的弊端
  • JS(DOM、事件)
  • hexo+github搭建个人博客
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Docker下部署自己的LNMP工作环境
  • ES6简单总结(搭配简单的讲解和小案例)
  • ESLint简单操作
  • github指令
  • JavaScript学习总结——原型
  • Java新版本的开发已正式进入轨道,版本号18.3
  • js算法-归并排序(merge_sort)
  • Median of Two Sorted Arrays
  • mongodb--安装和初步使用教程
  • Spring-boot 启动时碰到的错误
  • ViewService——一种保证客户端与服务端同步的方法
  • vue-router的history模式发布配置
  • Vue--数据传输
  • Yii源码解读-服务定位器(Service Locator)
  • 闭包,sync使用细节
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 服务器从安装到部署全过程(二)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 马上搞懂 GeoJSON
  • 浅谈Golang中select的用法
  • 思考 CSS 架构
  • 突破自己的技术思维
  • 我是如何设计 Upload 上传组件的
  • 项目实战-Api的解决方案
  • 一天一个设计模式之JS实现——适配器模式
  • 用jQuery怎么做到前后端分离
  • 1.Ext JS 建立web开发工程
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​VRRP 虚拟路由冗余协议(华为)
  • #1015 : KMP算法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (zhuan) 一些RL的文献(及笔记)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (备忘)Java Map 遍历
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (收藏)Git和Repo扫盲——如何取得Android源代码