JavaWeb 第一个Servlet程序

2023-10-29

1.Servlet

Servlet是Java编写的用于Web应用程序的服务器端程序。

它可以接收来自Web浏览器的HTTP请求并生成响应。

Servlet通常用于创建动态Web内容,例如网页、表单处理、登录和数据库访问等。

Servlet是Java EE(Enterprise Edition)规范的一部分,它提供了一种标准的API,以便开发人员可以编写可移植的Web应用程序。

Servlet可以在任何支持Java的Web服务器上运行,例如Tomcat、Jetty和WebSphere等。

狭义的Servlet是SUN公司提供的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。

2.如何开发一个Servlet程序

  • 编写一个类,实现Servlet接口
  • 将该类部署到web服务器中

3. 第一个Servlet程序

1)IDEA中新建一个Maven项目:

配置依赖的jar包:

pom.xml中加入:

<!-- 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>

2)新建一个类 

这个类的目标是实现Servlet接口。因为Servlet接口有两个默认的实现类:

GenericServlet实现了Servlet接口,但没有实现service()方法

HttpServlet继承了GenericServlet类,且实现了service()方法,service()会涉及调用doPost(), doGet()等方法。

 

 

 所以我们新建的类可以直接继承HttpServlet类,然后重写doPost(), doGet()这些方法:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.study.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
    public HelloServlet() {
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("----Hello Servlet---");
        System.out.println("This is  HelloServlet extends HttpServlet");
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

 上述代码就是我们的第一个Servlet程序

3)编写Servlet映射

我们要通过浏览器访问我们上面写的Servlet程序,浏览器与web服务器连接,所以可以在web服务器里注册我们上面写的Servlet。

找到web.xml:

加入以下映射:

    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.study.servlet.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

 

4)配置Tomcat

点击运行按钮左边的编辑配置,点击弹窗左上角的加号,选择Tomcat,然后配置Tomcat的名字,路径,端口号:

 如果找不到Tomcat,可以按照以下步骤手动添加:

  1. 打开 IDEA,点击菜单栏上的“File” -> “Settings”。
  2. 在弹出的“Settings”窗口中,选择“Plugins”选项卡,搜索框中输入“Tomcat”,然后点击“Install”按钮安装 Tomcat 插件。
  3. 安装完成后,重启 IDEA。
  4. 点击菜单栏上的“Run” -> “Edit Configurations...”。
  5. 在弹出的“Run/Debug Configurations”窗口中,点击左上角的“+”号,选择“Tomcat Server” -> “Local”。
  6. 在弹出的“Tomcat Server”对话框中,填写服务器名称、Tomcat 安装路径和 JRE 路径等信息,然后点击“OK”按钮。
  7. 在“Edit Configurations”窗口中,点击“Deployment”选项卡,然后点击“+”号,选择“Artifact”或“External Source”,并将你的 Web 应用程序添加到 Tomcat 服务器上。
  8. 点击“OK”按钮保存配置。

5)运行项目

在网址后加上刚才映射时配置的名字:/hello,可以得到servlet程序的结果。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaWeb 第一个Servlet程序 的相关文章

随机推荐

  • libcurl教程

    这个文档是小编在curl官网上使用谷歌翻译翻译的 详细信息看官网 curl 基本描述 本文档试图描述使用 libcurl 编程时要考虑的一般原则和一些基本方法 本文将主要关注 C 接口 但可能会很好地适用于其他接口 也会讲解一些个C接口相似
  • mongodb设置账号密码授权案例

    1 给admin授权管理员权限 gt use admin gt db createUser user admin pwd 123456 roles role root db admin 如果需要修改admin密码 gt db changeU
  • 链表有环(引申题:环在哪里)

    public class Test private static class ListNode int value ListNode next public static boolean hasCycle ListNode head if
  • 采集校园卡消费信息可视化(安徽工商职业学院)

    闲的没事干 分析下我自己的一卡通消费信息 使用了以下技术进行数据分析并且环境已经搭建好 Hadoop hive mysql sqoop centos7 python zeppelin 思路 python爬自己的消费记录 存入到mysql s
  • pthread函数总结

    概括 https www cnblogs com tianzeng p 8934060 html
  • linux 运行scrapy,linux下部署scrapy

    1 如何部署scrapy 下载scrapy client 下载地址 https github com scrapy scrapyd client 并进行安装 安装命令 python setup install 进入项目目录 执行scrapy
  • 【Unity3D日常BUG】Unity3D中出现“动画片段必须标记为Legacy的警告”消除方法

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 在开发中可能会遇到下面的警告 The Ani
  • 关于interface(接口继承)extends(接口)interface的问题

    前序 一直以来 我们学习java就被灌输了一个观点 类和抽象类 class 只能被继承 extends 接口 interface 只能被实现 implements 有个概念我们一直没有弄懂的是 类 class 可以实现接口 interfac
  • 刘积仁资本阳谋:东软熙康通过上市聆讯,三年亏损8亿元

    大数据产业创新服务媒体 聚焦数据 改变商业 9月中旬 第四次递表的东软熙康通过港交所上市聆讯 预计在9月30日之前完成IPO 作为国内首家以城市为入口的云医院平台厂商 东软熙康的互联网医疗服务包括互联网医院 远程医疗 智慧家庭医生 互联网居
  • 计算机科学和Python编程导论(二 ) Python简介

    基本概念 1 编程语言的分类 低级编程与高级编程 二者之间的区别是 编写程序时 我们是使用机器层次的指令和数据对象 底层操作 还是使用语言设计者提供的更为抽象的操作 图形用户界面 UI 通用性与专注于某一应用领域 指编程语言中的基本操作是广
  • 【yolo】makesense操作

    https www makesense ai 成功
  • 集团税务共享化、数字化系统如何选型(一)

    随着国家对于企业税务营改增的全面开启 再到国地税合并 金税三期全面建成 同时国家逐级推出发票电子化到专票电子化 标志着国家对发票全面升级为电子化 数字化 伴随着金税四期的开始并逐步落地 国家对企业的税收管理也原有的稽查转变为数字化 智能化的
  • 【100天精通Python】Day45:Python网络爬虫开发_ Scrapy 爬虫框架

    目录 1 Scrapy 的简介 2 Scrapy选择器 3 快速创建Scrapy 爬虫 4 下载器与爬虫中间件 5 使用管道Pielines lt
  • Java语言基础

    文章目录 1 开发环境 1 1 认识开发环境JDK 1 2 JDK JRE JVM关系 1 3 JDK1 8本地安装目录 1 3 1 bin 1 3 2 include 1 3 3 lib 1 3 4 conf 1 3 5 src 1 4
  • 32为什么还有 kill 不掉的语句?

    文章目录 32 为什么还有 kill 不掉的语句 收到 kill 以后 线程做什么 另外两个关于客户端的误解 小结 上期问题时间 32 为什么还有 kill 不掉的语句 在 MySQL 中有两个 kill 命令 一个是 kill query
  • 两个应用程序之间的通信

    应用程序之间的数据交换 互相通讯 一直是困扰广大程序员的难题 尽管已经出现了各式各样的解决方案 但迄今为止没有哪一种方案是完美无缺的 因此 只有学习并了解了它们的优缺点后 才能在特定的情况下选择最佳方案 以满足最终的要求 1 共享 在硬盘上
  • 【Redis】使用Redis实现消息队列

    一 两个消息模型 队列模型 队列模型如图所示 它具有以下几个特点 就像我们用微信和好友 群聊除外 聊天一样 微信就是这个队列 我们可以和很多个好友聊天 但是每条消息只能发给一个好友 只有一个消费者将获得消息 生产者不需要在接收者消费该消息期
  • MobaXterm通过SSH隧道配置RDP端口转发

    MobaXterm通过SSH隧道配置RDP端口转发 2019年9月29日星期日 版本1 0 目的 解决校园网跨网段 不能远程访问 微软RDP协议 客户端mstsc 默认端口 3389 服务器的问题 1 首先在服务器 Ubuntu 16 04
  • Flask入门教程(1)-定义Flask

    本系列文章仅为入门教程 入门举例 01 6 第一个Flask程序 1 导入flask扩展 from flask import Flask escape url for 2 创建flask 应用程序实例 需要传入 name 作用是为了确定资源
  • JavaWeb 第一个Servlet程序

    1 Servlet Servlet是Java编写的用于Web应用程序的服务器端程序 它可以接收来自Web浏览器的HTTP请求并生成响应 Servlet通常用于创建动态Web内容 例如网页 表单处理 登录和数据库访问等 Servlet是Jav