【JavaWeb】Tomacat部署Web项目

Hi i,m JinXiang


⭐ 前言 ⭐

本篇文章主要介绍【JavaWeb】Tomacat部署Web项目的详细使用以及部分理论知识


🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言


目录

一、JavaWeb

1、什么是Web?

2、什么是JavaWeb

3、HTTP协议

4、HTT响应格式

5、Web服务器

二、Tomcat

Tomcat的下载安装及使用

1、下载(Apache Tomcat)

2、解压及安装

3、Tomcat的目录结构

4、Apache Tomcat启动及关闭

三、Tomacat部署Web项目

1、新建一个项目

2、新建Java Enterprise项目

3、版本选择

四、练习测试

1、文件目录

2、代码示例

3、最终效果显示(动图)


一、JavaWeb

1、什么是Web?

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交百的、跨平台的分布式图形信息系统。是建立在internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个写为关联的网状结构。

Web简述:

可以通过http协议访问的网络服务,称为web,比如京东,天猫,淘宝等等;


2、什么是JavaWeb

采用Java的相关技术栈来实现Web功能的开发


3、HTTP协议

1,什么是HTTP协议

应用层协议:

超文本传输协议 (Hyper Text Transfer Protocol,HTTP) 是一个简单的请求-响应协议,它通常运行在TCP之它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应

2,快速体验HTTP协议

观察访问的细节,每一次访问资源都会有一个请求和响应的流程

3,HTTP的请求格式

1,请求行

格式:请求方式请求的资源路径

协议的类型及版本示例: GET / HTTP/1.1

2,请求头

格式: key:value

示例: Accept: text/html.... 表示浏览器可以接收的资源类型

注意 请求头和请求体之间会有空行

3,请求体

当我们的请求方式是Get时,则没有请求体,get是通过URL参数来携带数据

当我们的请求方式是Post时,则可以通过请求体来携带数据


4,HTT响应格式

1,响应行

格式:协议类型及版本 响应状态码 响应状态码描述

举例: HTTP/1.1 2000K

2,响应头

格式: key:value

举例: Content-Type: text/html;charset=utf-8 表示响应的类型及编码格式

中间会有一行空行

3,响应体

服务端给客户端的响应内容,比如网页内容响应码后续还有更多


5、Web服务器

所谓Web服务器即是安装了Web服务软件的服务器,帮助我们处理了HTTP协议的相关细节,让我们更加专 业务逻辑处理;

Tomcat/Jetty

二、Tomcat

 Tomcat 服务器是一个Web应用服务器,属于轻量级应用服务器,因为Tomcat里包含了html静态页面对Web的请求处理,还有servlet来实现动态的请求,也属于一个Servlet容器,简单理解,当项目部署到本地的Tomcat之后,浏览器发出请求,则就会响应Html页面的访问请求。Tomcat可以作为独立的Web服务器运行,也可以与其他Web服务器(如Apache HTTP服务器)配合使用。它提供了处理HTTP请求、管理Servlet和JSP(JavaServer Pages)的功能。Tomcat还支持JavaServer Faces(JSF)、Java Persistence API(JPA)等Java EE技术。

Tomcat的下载安装及使用

1、下载(Apache Tomcat)

直达链接:Apache Tomcat® - Welcome!

2、解压及安装

将Tomcat压缩包解压到一个非中文无空格的目录下

3、Tomcat的目录结构

目录--目录功能及使用

表格解释:目录及功能

目录或文件名功能
bin目录存放启动和关闭Tomcat的脚本文件
conf目录Tomcat的各种配置文件
lib目录Tomcat所需要的jar包
logs目录Tomcat的日志文件
temp目录Tomcat运行时产生的临时文件
webapps目录

      Web应用所在的目录,就是项目部署之后项目的存放位置

work目录Tomct的工作目录

4、Apache Tomcat启动及关闭

  • 1,bin/startup.bat 双击即可开启服务,默认是采用8080端口来监听的
  • 2,bin/shutdown.bat 双击即可关闭服务

注意!需要配置环境变量:CATALINA_HOME (值为tomcat的安装路径)

运行Tomcat解压后根目录下\bin\startup.bat即可启动Tomcat服务器,然后打开浏览器,在地址栏输入“ http://localhost:8080 ”就可以访问Tomcat了。

三、Tomacat部署Web项目

1、新建一个项目

2、新建Java Enterprise项目

3、版本选择

四、练习测试

相关练习:输入账号、密码、选择爱好 -- 显示注册成功功能

1、文件目录

2、代码示例

Myservlet

package com.example.demo2024.servlet;import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;public class Myservlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {// 请求// getParameter() 获取请求参数String name = servletRequest.getParameter("name");String password = servletRequest.getParameter("password");// getParameterValues() 获取多个值String[] hobbyS = servletRequest.getParameterValues("hobby");System.out.println("name = " + name + ", password = " + password + ", hobby = " + Arrays.toString(hobbyS));// 响应HttpServletResponse resp = (HttpServletResponse) servletResponse;resp.setHeader("Content-Type", "text/html;charset=utf-8");PrintWriter writer = resp.getWriter();writer.println("<h1>Hello, " + name + "!</h1>");writer.write("注册成功!");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

 dome:html页面显示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>from</title><style>body{text-align: center;}</style>
</head>
<body>
<form action="/demo2024/Myservlet" method="get">name:<input type="text" name="name"><br><br>password:<input type="password" name="password"><br><br>hobby:<input type="checkbox" name="hobby" value="篮球">篮球&nbsp;&nbsp;&nbsp;<input type="checkbox" name="hobby" value="足球">足球<br><br><input type="submit" value="提交">
</form>
</body>
</html>

web:配置文件

<?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"><!--配置servlet的全类名--><servlet><servlet-name>Myservlet</servlet-name><servlet-class>com.example.demo2024.servlet.Myservlet</servlet-class></servlet><!--配置servlet的映射--><servlet-mapping><servlet-name>Myservlet</servlet-name><url-pattern>/Myservlet</url-pattern></servlet-mapping>
</web-app>

3、最终效果显示(动图)

总结不易,希望宝宝们不要吝啬亲爱的👍哟(^U^)ノ~YO! 如有问题,欢迎评论区批评指正😁

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《为什么学生不喜欢上学?》读书笔记

书简介 美国弗吉尼亚大学心理学教授威林厄姆的教育心理学著作。 作者在文末揭示了撰写此书的目的&#xff1a; 【 教育是将世代积累的智慧传递给孩子&#xff0c;我们强烈地相信它的重要性&#xff0c;因为我们知道&#xff0c;它为每个孩子以及其他所有人都带来了更好生活的希…

./ 相对路径与node程序的启动目录有关

node:internal/fs/sync:78 return binding.openSync( ^ Error: ENOENT: no such file or directory, open D:\前端的学习之路\项目\codeHub\keys\private_key.pem at Object.open (node:internal/fs/sync:78:18) at Object.openSync (node:fs:565:…

【网站项目】014乡镇自来水收费系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

JavaScript---lazyload图片懒加载处理_IntersectionObserver

IntersectionObserver API兼容性&#xff1a; 部分代码展示&#xff1a; // 懒加载处理const imgsElem document.querySelectorAll(img);const topElem document.querySelector(#top);// IntersectionObserverconst Observer new IntersectionObserver((entries, observer) …

PWARL CTF and others

title: 一些复杂点的题目 date: 2024-03-09 16:05:24 tags: CTF 2024年3月9日 今日习题完成&#xff1a; 1.BUU [网鼎杯 2020 半决赛]AliceWebsite 2.[RoarCTF 2019]Online Proxy 3.[Polar CTF]到底给不给flag呢 4.网鼎杯 2020 总决赛]Game Exp [RoarCTF 2019]Online Proxy …

【软件工程导论】——软工学绪论及传统软件工程(学习笔记)

&#x1f4d6; 前言&#xff1a;随着软件产业的发展&#xff0c;计算机应用逐步渗透到社会生活的各个角落&#xff0c;使各行各业都发生了很大的变化。这同时也促使人们对软件的品种、数量、功能和质量等提出了越来越高的要求。然而&#xff0c;软件的规模越大、越复杂&#xf…

X64 页表结构

PML4&#xff08;Page Map Level 4&#xff09;是x86-64架构中用于管理虚拟内存地址翻译的四级页表结构之一。它是一种树形结构&#xff0c;由多个页目录表&#xff08;Page Directory Pointer Table&#xff0c;PDPT&#xff09;组成&#xff0c;每个PDPT有512个指向下一级页表…

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列&#xff08;3&#xff09;——MRTK基础知识及配置文件配置&#xff08;中&#xff09; 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者&#xff08;Input Data Providers&#xff09;2.3 输入动作&#xff08;Input Actions&#xff09;2…

Date类型及dayjs的使用总结

一、Date() Date数据类型用于处理日期和时间&#xff0c;它可以表示自1970年1月1日00:00:00 UTC&#xff08;Coordinated Universal Time&#xff0c;国际协调时间&#xff09;以来的毫秒数。 1.创建Date对象 例如&#xff1a;Tue Oct 31 2023 14:01:33 GMT0800 (中国标准时…

算法刷题day28

目录 引言一、截断数组二、双端队列三、日期统计 引言 这几道题是周赛里的几道题目&#xff0c;第一道题目我没用这种方法&#xff0c;但还是做出来了&#xff0c;用的一种比较特殊的思考方法&#xff0c;就是把每一个点都判断出来&#xff0c;不满足要求的就舍弃&#xff0c;…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 JavaScript事件处理

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 什么是DHTML …

Linux基础命令[16]-head

文章目录 1. head 命令说明2. head 命令语法3. head 命令示例3.1 不加参数3.2 -c&#xff08;按照字节显示&#xff09;3.3 -n&#xff08;按照行数显示&#xff09;3.4 -v&#xff08;显示文件名&#xff09; 4. 总结 1. head 命令说明 head&#xff1a;用来显示文件开头&…

Linux认识与学习BASH

Linux认识与学习BASH 认识BASH这个Shellshell是什么系统的合法shell与/etc/shells功能Bash Shell的功能查询命令是否为Bash shell 的内置命令(type)命令的执行与快速编辑按钮 shell的变量功能什么是变量&#xff1f;变量的使用与设置&#xff1a;echo、变量设置规则、unset环境…

springboot网页时装购物系统链接

链接:https://pan.baidu.com/s/1mCmCSbqUCv48_a6wiLBdJg?pwdfalz 提取码:falz 2600套项目源码 https://kdocs.cn/l/cuAdxEBfLiqA 工作室精心制作&#xff0c;包括小程序项目&#xff0c;springboot项目&#xff0c;传统ssm项目&#xff0c;前后端分离项目。你可以用来制作自…

Stable Diffusion 模型下载:Comic Babes(漫画宝贝)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者datmuttdoe文件名称comicBabes_v2.safet…

如何用 RAG 技术玩转文档问答?Milvus × 网易有道 QAnything 为你揭秘!

过去一年&#xff0c;RAG 在技术层面发展迅速&#xff0c;为向量数据库赛道添了一把火。RAG 和向量数据库的结合&#xff0c;能够有效解决幻觉、时效性差、专业领域知识不足等阻碍大模型应用的核心问题。 不久前&#xff0c;网易有道开源了自研的 RAG 引擎 QAnything。用户的任…

Q学习(Q-Learning)

Q学习是一种强化学习算法&#xff0c;用于指导代理&#xff08;Agent&#xff09;在给定环境中如何采取最优行动。它通过学习状态中的行动价值来实现&#xff0c;属于从与环境的交互中学习&#xff0c;通过尝试和错误&#xff0c;以实现目标的机器学习算法。 下面是Q学习工作原…

突破次元壁!体验数字人的神秘世界

在这个繁忙的城市&#xff0c;人们的生活总是充满了压力和焦虑。他们似乎总是在追寻着什么&#xff0c;却又不知道自己究竟在追寻什么。在这个看似平凡的世界里&#xff0c;隐藏着一个神秘的数字人世界。 这个数字人世界并不是虚构的&#xff0c;而是我们无法触及的另一个维度…

CUDA入门之统一内存

原文来自CUDA 编程入门之统一内存 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质…

vite配置

"vite": "^5.1.4" resolve.alias&#xff1a;配置别名 1、执行npm install -D types/node 或者 yarn add types/node -D 2、以下配置代表访问src时可以用“”代替 resolve: {alias: {"": path.resolve(__dirname, "./src"),},}, 使…