【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 {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public 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("注册成功!");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public 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.mfbz.cn/a/433936.html

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

相关文章

Linux系统之rename命令的基本使用

Linux系统之rename命令的基本使用 一、rename命令介绍二、raname工具版本2.1 C语言版本2.2 Perl版本 三、centos下的rename使用3.1 基本语法3.2 命令选项3.3 rename的基本使用 四、ubuntu下的rename使用4.1 基本语法4.2 命令选项4.3 rename命令的基本操作 五、rename注意事项 一…

双体系Java学习之全路线图

Java路线图 此路线图是为了我以后的Java学习指明方向。 希望大家都能在Java的路线上越走越远&#xff01;努力学习&#xff01;&#xff01;

javaSwing飞机大战

概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏&#xff0c;应用Swing编程&#xff0c;完成一个界面简洁流畅、游戏方式简单&#xff0c;玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。 1.2 实…

coqui-ai/TTS 安装使用

Coqui AI的TTS是一款开源深度学习文本转语音工具&#xff0c;以高质量、多语言合成著称。它提供超过1100种语言的预训练模型库&#xff0c;能够轻松集成到各种应用中&#xff0c;并允许用户通过简单API进行个性化声音训练与微调。其技术亮点包括但不限于低资源适应性&#xff0…

golang中go build 后读取配置文件

golang打包后读取配置文件 在用go写代码的时候&#xff0c;为了好用经常使用go build 打包&#xff0c;如果我们用到了配置文件&#xff0c;就总是导致不能找到文件所在位置了出现bug&#xff0c;所以以下代码就解决了这个问题。 核心代码&#xff1a; file, err : exec.Look…

【C++ vscode 环境问题】vscode编译的时候:未定义标识符 thread mingw-w64安装支持c++11中thread

重新下载 MinGW64 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/往下滑动 最下面 找到这个版本下载解压并且记住下载的位置搜环境 添加你的MinGW64安装的位置 路径模仿我这样写 然后应用报存修改vscode配置文件 问题解决

【JSON2WEB】08 Amis的事件和校验

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

Python(NetOps)前传-网络设备开局配置

背景 我们知道用Python在cli配置网络设备的前提是&#xff1a; 网络设备与Python主机网络可达网络设备已开启并完成ssh相关配置 目标 本文已华为S5720S-52P-LI-AC交换机为例&#xff0c;完成&#xff1a; 完成网络设备开局配置&#xff1b;用Python脚本验证ssh登录 配置 …

整流二极管:电路图、符号、功能与其它二极管的区别

整流二极管是 一种用于将交流电转换为直流电的半导体器件。二极管最重要的特性是单向导电性。在电路中&#xff0c;电流只能从二极管的正极流入&#xff0c;从负极流出。通常&#xff0c;它包含一个带有正极和负极端子的 PN 结。其结构如下图所示。 P区的载流子是空穴&#xf…

【Mysql】执行sql语句后,mysql都做了什么?

查数据大家都经常干&#xff0c;但是你知道从执行sql到看到结果&#xff0c;mysql背后都做了什么事情吗&#xff1f; 一、mysql的架构 client/server 这种客户端到服务端的架构&#xff0c;大家一定都很熟悉&#xff0c;其实 mysql 也与之类似。 可以有多个客户端与服务端连…

突破编程_前端_JS编程实例(简单树结构组件)

1 开发目标 实现如下简单树结构组件&#xff1a; 再点击树节点后&#xff0c;会调用客户端传入的回调函数&#xff1a; 2 详细需求 简单树结构组件需根据客户端提供的参数创建&#xff0c;具备动态构建树形结构节点、选项卡切换及自定义内容显示等功能&#xff1a; &#xf…

DR模式LVS负载均衡部署

实验&#xff1a;7-1做调度器&#xff1b;7-2和7-3做真实服务器&#xff1b;7-4做客户端&#xff1b; 1.先关闭所有的防火墙和selinux [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# 2.怎么看selinux状态 [rootlocalhost…

docker拉取镜像报错permission denied

ocker pull apache/causeway-app-helloworld:latest permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImageapache%2Fcauseway-app-helloworld&a…

Vue:双token无感刷新

文章目录 初次授权与发放Token&#xff1a;Access Token的作用&#xff1a;Refresh Token的作用&#xff1a;无感刷新&#xff1a;安全机制&#xff1a;后端创建nest项目AppController 添加login、refresh、getinfo接口创建user.dto.tsAppController添加模拟数据 前端Hbuilder创…

node的使用和模块化认识

node使用 1. node运行文件 node执行js的方式是在cmd命令行运行运行方式两种 直接打开命令行输入node&#xff0c;进入node环境&#xff0c;书写javascript&#xff0c;这种方式书写javascript关闭命令行就需要在重新写一遍&#xff0c;一般开发不推荐使用这种方式。 退出node…

磁盘没有满 为什么提示磁盘空间不足?原来是inode惹的祸。

我为什么知道是inode 的问题呢&#xff1f; 接下备好瓜子花生来且听我分析 我一个免费开源根据ip获取用户地理位置的api 突然报错如下 failed to open stream: No space left on device in 然后登录linux 使用shell命令 自动补全功能竟然也提示磁盘空间不足 报错如下 cd /-b…

ES单节点部署

ES 拉取镜像 docker pull elasticsearch:7.10.1启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e "ES_JAVA_OPTS-Xms1g -Xmx1g" -v /es_data:/usr/share/elasticsearch/data --name es 558380375f1a注&#xff1a…

微信小程序怎么盈利?探索微信小程序的盈利途径与建设流程

微信小程序自推出以来&#xff0c;凭借其无需下载安装、即用即走的特点&#xff0c;在移动互联网领域迅速占据了重要地位。商家和开发者们纷纷投入其中&#xff0c;希望借助这一平台实现商业价值的转化。那么&#xff0c;微信小程序是如何为开发者和商家带来盈利的呢&#xff1…

配置与管理防火墙

配置与管理防火墙 1&#xff0c;概念&#xff1a;设置在不同网络或网络安全域之间的一系列部件的组合。 2&#xff0c;功能&#xff1a;保护内网中易手攻击的服务&#xff1b;控制内外网之间网络系统的访问&#xff1b;隐藏内网的IP地址及结构的细节&#xff0c;提高网络保护…

【操作系统概念】 第5章:进程调度

文章目录 0.前言5.1 基本概念5.1.1 CPU-I/O 区间周期5.1.2 CPU程序调度5.1.3 抢占调度5.1.4 分派程序 5.2 调度准则5.3 调度算法5.3.1 先到先服务调度(First-Come&#xff0c;First-Served scheduling)5.3.2 最短作业优先调度(shortest-job-first scheduling,SJF)5.3.3 优先级调…
最新文章