【Servlet学习一】认识Servlet 创建第一个Servlet项目

目录

🌟需要知道:

🌈1、Tomcat是什么?

🌈 2、Maven

🌟一、认识Servlet

🌈1、Servlet是什么?

🌈2、实现第一个Servlet项目。

🌈3、简单了解Postman工具的使用 


🌟需要知道:

🌈1、Tomcat是什么?

Tomcat 是一个 HTTP 服务器。

🌈 2、Maven

        maven是帮助开发者构建统一项目(maven项目)的工具,使用它可以是实现jar包的管理,编译和打包项目等操作,解决版本不同的问题。

关键:配置国内的镜像源。

        maven是国外开发的,叫做“中央仓库”,每次使用的时候都要去下载很麻烦,reload才是真正去下载,成本高,并且面向所有开发者。做两件事:

(1)做一个本地仓库:当第一次去访问的时候,本地还没有,此时去中央仓库访问,获取jar包并放在本地仓库里面,因此以后访问的时候就去本地访问就行。因此下次访问的时候先去本地找看有没有,有的话直接获取,没有的话就去中央仓库下载放在本地仓库。

(2)将中央仓库配置到国内。镜像网站,将maven的中央仓库从国外拉取到国内,复制一份过来。

1、创建一个maven项目:以我自己的IDEA为例(社区版本2022)

(1)新建项目

(2)创建maven模板

(3)创建的maven模板如下:后续的Servlet项目是在这个基础上进行完善即可。


🌟一、认识Servlet

🌈1、Servlet是什么?

Servlet是基于HTTP协议的JavaWeb框架,运行在Tomcat中

Servlet的主要工作:

(1)建立连接:客户端和程序的连接(当用户输入请求URL之后,程序能够感知到用户的请求);

(2)获取用户请求参数:处理Request对象;

(3)将服务器处理结果返回给客户端:返回Respond对象


问题:为什么要使用servlet?

因为现在的代码都是前后端分离的。

🌈2、实现第一个Servlet项目。

前置条件:配置maven国内源。

1、创建Servlet项目的步骤:

(1)创建一个maven项目;

(2)完善maven项目:添加java源代码根文件夹;

 重点:

(1) main下的java是蓝色的
(2) resources是带三条线的图标
(3)webapp和java 平级
(4)webapp下有一个WEB-INF目录
(5)WEB-INF下有一个web.xml
(6)test下的java是绿色的
以上几点就是一个标准的maven+web项目

(3)添加servlet框架,将项目升级为servlet项目。(在pom.xml文件中添加依赖)

注意:使用provided:在编译和测试时有效,在运行时无效。因为在Tomcat中内置了servlet,运行时会使用tomcat内置的servlet。


2、实现Servlet代码

(1)新建一个普通类;

(2)继承HttpServlet;

(3)注册请求路由(URL):通过注解实现。

(4)重写doGet与doPost方法。

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;

//2、注册请求的路由:通过注解实现。就能感知到/hello了。
@WebServlet("/hello")
//1、继承HttpServlet
public class Demo1_HelloServlet extends HttpServlet {
    //3、重写doGet或者doPost方法
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取前端给的name参数
        String name = req.getParameter("name");
        //将结果返回给前端
        resp.getWriter().println("name="+name);
    }
}

打包代码放在Tomcat中运行,是个war包。——>放在Tomcat的webapps中,只能放在这个文件夹中。——>启动Tomcat中的start.bat——>在浏览器输入执行代码:

http://localhost:8081/Demo2_Servlet/hello?name=zhangsan

成功!一个简单的Servlet代码就实现了。

  如果要设置中文的编码格式,要加以下代码

 

🌈3、简单了解Postman工具的使用 

PostMan的简单使用

(1)安装好之后,打开页面如下:主要包含三部分:请求地址、请求参数、和响应信息。

 (2)Params:在第一部分:请求地址中输入URL地址,Params下方自动添加key值和value值。

 (3)Body

 (4)Get与Post方法

由于在代码中重写了Get方法,因此可以发现Get方法可以成功显示,但是Post方法不行,显示405错误。

 原因是代码里面没有重写doPost方法,因此要支持doPost方法,在代码中重写doPost方法。

然后相同的流程:

(1)打包新程序;

(2)必须先停止tomcat服务:不能直接覆盖原有的war包文件,防止文件没有被覆盖成功。

(3)将新程序的war包放在tomcat/webapps下;

(4)启动tomcat下的start.bat文件;

(5)输入URL地址在浏览器。

 

 上述操作存在一个问题:我每次运行程序都要打包去Tomcat中关掉再打开,非常麻烦,有没有一种比较简单的方式呢?实现IDEA与Tomcat的合并。

社区版本IDEA:安装插件:smart Tomcat

专业版IDEA:忽略此步骤。

(1)在Settings设置中,找到Plugins插件,找到Smart Tomcat插件,点击安装。

0

 (2)找到Run下面的Edit Configurations编辑(不同的IDEA可能页面设置不同,在自己的编辑器里面找到就行)

 (3)来到如下页面:主要操作有以下三步 

 (4)代码写好之后,点击右上角的运行按钮,等待下方出现URL的地址,复制到浏览器即可。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LTV-6314-ASEMI代理台湾光宝高速光耦LTV-6314

编辑:ll LTV-6314-ASEMI代理台湾光宝高速光耦LTV-6314 型号:LTV-6314 品牌:台湾光宝 封装:LSOP-6 引脚数量:6 类型:光耦 特性:台湾光宝、IGBT驱动器、储能专用光耦\高速光耦 …

云服务器ECS_云主机_服务器托管_弹性计算-阿里云

阿里云服务器ECS(Elastic Compute Service)是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云服务器网分享阿里云服务器ECS详细介…

基于深度学习的高精度鸽子检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度鸽子检测识别系统可用于日常生活中或野外来检测与定位鸽子目标,利用深度学习算法可实现图片、视频、摄像头等方式的鸽子目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

Java8 List集合如何指定打印分隔符

目录 背景方法一:String.join(推荐)方法二:Collectors.joining总结 背景 无论是在学习还是日常的应用开发过程中,我们经常会需要使用分隔符将 List 集合打印出来。 如下所示: import java.util.Arrays;pub…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

基于flask的web应用开发——搭建一个云盘

目录 0. 前言1. 实现开放下载链接2. 稍加改装3. 效果演示4. 云服务器项目部署 0. 前言 本节利用 flask 开放下载链接 操作系统:Windows10 家庭版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库:fla…

CSS基础学习--14 Position(定位)

一、定义 position属性指定了元素的定位类型 position 属性的五个值: staticrelativefixedabsolutesticky 元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有…

leetcode90. 子集 II(java)

子集II leetcode90. 子集 II题目描述解题思路代码演示 回溯算法专题 leetcode90. 子集 II 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/subsets-ii 题目描述 给你一个整数数组 nums ,其中可能包含重复元素…

服务器配置远程vscode

1 使用sftp同步远程代码 打开vscode,在扩展种搜索sftp,点击安装。   按住快捷键shiftctrlp,可以打开界面顶部的命令行,输入sftp,点击如下图的config选项:   会自动在.vscode目录下创建一个名为sftp.j…

Go语言实现单链表

博主最近在学习Go语言,所以打算更新一期Go语言版本的数据结构。这篇文章将的是Go语言如何实现单链表。 文章目录 前言一、个人见解,为什么学GO?二、Go语言实现单链表1.创建节点2.通过数组创建一个单链表3.遍历单链表4.单链表插入操作4.1 伪代…

基于AutoJs7实现的薅羊毛App专业版源码大分享

源码下载链接:https://pan.baidu.com/s/1QvalXeUBE3dADfpVwzF_xg?pwd0736 提取码:0736 专业版肯定比个人版功能强大并且要稳定。增加了很多功能的同时也测试封号的App,对于封号的App,给予剔除。虽然App数量减少了但是都是稳定的…

图书推荐|Python数据分析与挖掘实战(第2版)

Python数据分析与挖掘实战(第2版)一共分为三个部分,包括基础篇(第1~5章)、实战篇(第6~12章)、提高篇(第13章)。其中基础篇介绍了数据挖掘的基本原…

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法

linux部署rabbitmq开启mqtt插件由于监听1883端口导致重启rabbitmq失败的解决方法 第一步:部署rabbitmq 部署rabbitmq请移步(在这里可以找到erlang和rabbitmq适配的版本并下载安装包): https://blog.csdn.net/char1otte/article/de…

Flutter - 命令行工具源码调试环境搭建

文章目录 前言开发环境环境搭建运行测试调试测试最后 前言 开发Flutter项目时难免会遇到各种问题,源码调试对于问题的解决不可或缺。 对于Flutter框架项目的源码调试,如果是Flutter核心库调试,只需要创建一个Flutter项目并在项目中使用需要…

SpringCloud搭建Eureka服务注册中心(六)

前面说过eureka是c/s模式的 server服务端就是服务注册中心,其他的都是client客户端,服务端用来管理所有服务,客户端通过注册中心,来调用具体的服务; 我们先来搭建下服务端,也就是服务注册中心&#xff1b…

ansible-playbook

Ansible 的脚本 — playbook 剧本 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3&a…

attention unet + cldice 论文总结

Blood Vessel Segmentation from Low-Contrast and Wide-Field Optical Microscopic Images of Cranial Window by Attention-Gate-Based Network论文总结 论文:Blood Vessel Segmentation by Attention-Gate-Based Network 目录 一、论文背景和出发点 二、创新点…

网络端口地址转换 NAPT 配置

你是某公司的网络管理员,公司办公网需要接入互联网,公司只向 ISP 申请了一条专线,该专线分配了一个公司 IP 地址,配置实现全公司的主机都能访问外网。 技术原理 NAT 将网络划分为内部网络和外部网络两部分,局域网主机…

基于spss的多元统计分析 之 实例3(血压、胆固醇于心脏病关系的研究)(8/8)

血压、胆固醇于心脏病关系的研究 摘要 一般线性模型中的一种,即反应变量 (dependent variables)为二分类变量的回归分析,模型输出为变量取特定值的概率。 在进行二元Logistic回归分析时,通常会涉及3个步骤,分别是数据处理、卡方分…

青翼科技自研模块化互联产品 • 模拟采集FMC子卡【产品资料】

FMC122是一款基于FMC标准规范,实现2路16-bit、1GSPS ADC同步采集,2路16-bit 2.5GSPS DAC同步回放功能子卡模块。该模块遵循VITA57.1标准,可直接与FPGA载卡配合使用,板卡ADC器件采用TI的ADS54J60芯片,该芯片具有两个模拟…