【JavaWeb学习笔记】6 - Tomcat

项目代码

零、在线文档 

Apache Tomcat 8 (8.0.53) - Documentation Index

WEB开发

1. WEB,在英语中web表示网/网络资源(页面,图片,css,js)意思,它用于表示WEB服务器(主机)供浏览器访问的资源

2. WEB服务器(主机)上供外界访问的Web资源分为:

        静态web资源( 如htmD页面) :指web页面中供人们浏览的数据始终是不变。

        动态web资源,比如Servlet、PHP等。

3.静态web资源开发技术

        Html、CSS等

4.常用动态web资源开发技术:

        Servlet、SpringBoot、 SpringMVC、PHP、ASP.NET等

B/S C/S开发

1. B: browser(浏览器)

2. S: Server(服务端)

1.C:Client(客户端)

2.S:Server(服务端)

(1)兼容性因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常

(2)安全性,通常情况下,BS安全性不如CS好控制

(3)易用性, BS好于CS,浏览器电脑有

(4)扩展性, BS相对统一, 只需要写Server
 

一、JavaWeb服务软件

1.介绍

1.学习JavaWeb开发,需要先安装JavaWeb服务软件(我们把安装了JavaWeb服务软件主机称为Web服务器/JavaWeb服务器) 在web服务器中开发相应的web资源。

2.学习JavaWeb开发,Tomcat本质就是一个Java程序, 但是这个Java程序可以处理来自浏览器的HTTP请求

2.模拟简单的Web服务程序

这里,我们需要使用到Java基础(IO/网络)

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;/*** @author 银小海* @version 1.0* @email yinhai14@qq.com* 这是我们自己写的web服务 可以返回hello.html给浏览器*/
public class MyTomcat {public static void main(String[] args) throws IOException {//1.在9999端口监听ServerSocket serverSocket = new ServerSocket(9999 );int i = 0;//如果serverSocket没有关闭就循环监听反复while (!serverSocket.isClosed()) {//2.等待客户端连接得到socket//http://localhost:9999表示浏览器向localhost(127.0.0.1)表示本机的9999端口发出请求System.out.println("程序在这句话" + ++i);Socket socket = serverSocket.accept();//3.得到输出流OutputStream outputStream = socket.getOutputStream();// outputStream.write("hello,i am mytomcat".getBytes());//4.读取hello.html文件返回即可BufferedReader bufferedReader = new BufferedReader(new FileReader("tomcat/src/hello.html"));String buf = "";while((buf = bufferedReader.readLine() )!= null){outputStream.write(buf.getBytes());}outputStream.close();socket.close();}serverSocket.close();//如果不使用while循环 查询当把信息返回去之后就马上关闭了 所以不能这么干}
}

使用上述传输时,出现以下问题

当前无法使用此页面

localhost 发送了无效的响应。qq浏览器 谷歌浏览器 edge都出现该问题,均能链接到程序但是无法显示

localhost:8080 localhost:9999均尝试了都不太行 确实能连接到 但是就是无法访问,应该是某个安全校验问题吧,使用firefox即可解决该问题

3.常用的JavaWeb服务软件

1. Tomcat:由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器,是当前应用最广的JavaWeb服务器(免费)。

2. Jboss: 是一个遵从JavaEE规范的、它支持所有的JavaEE规范(免费)。

3. GlassFish:由 Oracle公司开发的一款JavaWeb服务器,是一款商业服务器,达到产品级质量(应用很少)。

4. Resin:是CAUCHO公司的产品,是- -个非常流行的服务器,对servlet和JSP提供了良好的支持,性能也比较优良 (收费)。

5. WebLogic [很猛] :是Oracle公司的产品,支持JavaEE规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多适合大公司)

二、Tomcat的基本介绍

1.Tomcat下载安装

1.双击bin目录下的startup.bat文件

2.输入http:/ /localhost:8080/,显示如下界面代表安装成功

3.注意,不要关闭黑窗口,关闭了,tomcat服务就停止了.

4.也可以在bin目录下使用catalinna run启动

5.关闭最好是使用shutdown. bat

2.启动故障排除

1.双击startup.bat文件,出现-一个小黑窗口然后就没了,原因是因为没有配置好JAVA HOME 环境变量

2. JAVA_ HOME 必须全大写

3. JAVA_ HOME 中间必须是下划线

4. JAVA_ HOME配置的路径只需要配置到jdk的安装目录即可。不需要带上bin目录

5.端口8080被占用[查看端口netstat -anb]

6.如果其它服务程序占用了8080端口,可以关闭该服务,或者修改Tomcat服务的默认端口8080 

7.配置JAVA_ HOME环境变量

3.目录结构

4.Tomcat服务中部署WEB应用

发人员在开发web应用时,按照规定目录结构存放这些文件。否则,在把web应用交给web服务器管理时,不仅可能会使web应用无法访问,还会导致web服务器启动报错。

 

5.浏览器访问web服务器文件UML时序图

6.修改Tomcat端口

三、IDEA开发JavaWeb工程

1.开发javaweb工程 & 配置TomCat启动项目

1.需要:使用IDEA开发开发JavaWeb工程fishWeb,并将网页部署到fishWeb工程,看老师演示

配置完成后如何配置本地tomcat

选择Tomcat的解压位置 

热加载

记得改名

点击绿色的运行执行

在浏览器输入该URL即可访问到Tomcat下的该文件

2.注意事项

(1) on update action :表示当我们更新操作是, Tomcat会自动更新类和资源(当jsp/html文件修改时可以生效)

(2) on frame deactivation :表示IDEA失去焦点(比如最小化),也会导致jsp/html发生更新, 但是java修改了,还是需要redeploy

2.端口修改

server.xml

3. out目录是什么

4.当我们从外部拷贝资源到项目(图片,文件, js等),如果出现404不能访问错误,解决方式rebulid project ->重启Tomcat

四、课后作业

 

注意指定编码格式 

注意是放在web包下 src是用来放java文件的

多看该图 

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

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

相关文章

区块链创新应用场景不断拓展,实现去中心化

小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 区块…

python自动化测试框架:unittest测试用例编写及执行

本文将介绍 unittest 自动化测试用例编写及执行的相关内容,包括测试用例编写、测试用例执行、测试报告等内容。 官方文档: https://docs.python.org/zh-cn/3/library/unittest.mock.html 1. 测试用例编写 在 unittest 中,一个测试用例通常…

外包干了3个月,技术倒退2年。。。

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

01-Redis核心数据结构与高性能原理

一、Redis的单线程和高性能 1. Redis是单线程吗? Redis的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的(说白了也就是执行命令的时候是由一个线程来完成的),这也是 Redis 对外提供键值存储服务的主要流程。…

DALI1.0学习——BIT解码

最近在学习DALI调光相关知识并下载了Microchip提供的基于ATMega88PA的软件工程及硬件设计参考方案。写这些文章的目的就是把自己对知识的理解作一些梳理。 芯片厂果然专业,考虑得相当周到,为了芯片销量连软件和硬件方案全都提供了。芯片厂关于DALI1.0实…

蓝桥杯day04——查询后矩阵的和

1.题目 给你一个整数 n 和一个下标从 0 开始的 二维数组 queries ,其中 queries[i] [typei, indexi, vali] 。 一开始,给你一个下标从 0 开始的 n x n 矩阵,所有元素均为 0 。每一个查询,你需要执行以下操作之一: …

JavaSE基础50题:6. 求出0~999之间的所有“水仙花数”并输出

概念 “水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身。 如:153 135333,则153是一个“水仙花数”。 【方法】 如何获得每一位的数:如(153) 个位: 153 % 10 3 十位: 153 / 10 15 15 % 10 5 百位: 153 / 100 1 代码 pu…

书-用数组存储高于60低于70的人单独存起来

#include<stdio.h> # define N 10 //书-用数组存储高于60低于70的人单独存起来 int main(){float s[N]{68.2,62.3,63.4,34.5,45.6,56.7,67.8,78.9,89.0,100};int i;float diyu[100];int j0;for(i0;i<N;i){if(s[i]>60 && s[i]<70)diyu[j]s[i];//这里的范…

消息队列zookeeper集群+kafka

消息队列zookeeper集群kafka kafka 3.0之前依赖于zookpeeper zookeeper开源分布式架构&#xff0c;提供协调服务&#xff08;Apache项目&#xff09; 基于观察者模式设计的分布式服务管理架构 存储和管理数据。分布式节点的服务结束观察者的注册&#xff0c;一旦分布式节点…

docker搭建logstash和使用方法

配置logstash 查询下载镜像【固定和elasticsearch一样的版本】 [roothao ~]# docker search logstash NAME DESCRIPTION STARS OFFICIAL AUTOMATED logstash …

【数据分享】11个城市的出租车(网约车)数据(免费获取)

出租车&#xff08;网约车&#xff09;GPS数据是我们最常使用的交通大数据之一&#xff0c;但是出租车&#xff08;网约车&#xff09;GPS数据没有公开的获取渠道&#xff0c;有些学者可能能通过与相关机构合作拿到数据&#xff0c;但是对于绝大多数普通人是没有这个机会的&…

LeetCode Hot100 200.岛屿数量

题目&#xff1a; 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以…

2023年最详细介绍Linux 系统目录结构!你确定不来了解一下吗?

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Linux》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有…

AWS CodeWhisperer:基于机器学习的代码建议工具

#AWS CodeWhisperer&#xff1a;基于机器学习的代码建议工具 AWS CodeWhisper概述 Amazon CodeWhisperer 是一种基于机器学习&#xff08;ML&#xff09;的服务&#xff0c;它可以根据Amazon CodeWhisperer 是一种基于机器学习&#xff08;ML&#xff09;的服务&#xff0c;它…

Java---接口讲解

文章目录 1. 接口概述2. 接口特点3. 接口成员特点4. 小案例应用5. 类和接口的关系6. 抽象类和接口区别 1. 接口概述 1. 接口是一种公共的规范标准&#xff0c;只要符合规范标准&#xff0c;大家都可以通用。Java中的接口更多的是体现在对行为的抽象。 2. 参考生活中的接口可以理…

玩弄GPTs:人人都会的Prompt模板

角色定义 分享一个自用的Prompt模板&#xff0c;只要学会了这个模板&#xff0c;当遇到新场景时&#xff0c;直接套用就行。 简单总结&#xff1a; 角色定义(Master)背景(Background)规则(rule)技能(skill)限制(constaints)工作流(workflow) 经过实际测试发现&#xff0c;这…

Gti GUI添加标签

通过Git Gui打开项目&#xff0c;通过菜单打开分支历史&#xff0c;我这里是名为"develop"的分支 选中需要打标签的commit&#xff0c;右键-Create tag即可 但貌似无法删除标签&#xff0c;只能通过git bash

IOday4作业

使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一半内容&#xff0c;父进程用于回收两个子进程的资源 #include<myhead.h>int main(int argc, const char *argv[]) {int pid-1;int fd -1;int fa -1;int fb -1;//求出文…

Splashtop 荣获 SDC“年度安全供应商”奖

2023年12月5日 荷兰阿姆斯特丹 Splashtop 是随处办公环境改革的先驱&#xff0c;在伦敦举办的第14届 SDC 颁奖典礼上荣获“年度安全供应商”奖&#xff0c;我们对此感到十分自豪。荣获这一知名奖项凸显了 Splashtop 致力于通过企业级加密和基于权限的访问保护不同规模组织的决…

【精选】MyFileServer (超详细思路过程)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …