JavaWeb详解加实战

news2024/12/25 2:27:39

JavaWeb

1、基本概念

1.1、前言

web开发

  • web,网页的意思
  • 静态web
    • HTML、CSS
    • 提供给所有人看的数据始终不变
  • 动态WEB
    • 提供给所有人看的数据始终会发证变化,每个人在不同的时间,地点看到的信息各不相同
    • 技术栈:Servlet/JSP,ASP,PHP

在Java中,动态WEB资源开发的技术统称为JAVAWEB

1.2、web的应用程序

web应用程序,可以提供浏览器访问的程序包含的部分

  • HTML、CSS、JS
  • JSP、Servlet
  • Java
  • jar包
  • 配置文件(properties)

1.3、静态web

image-20210915151355826

  • 静态页面的缺点
    • Web页面无法更新动态,所有的用户看到的都是一个页面
      • 轮播图、点击特效、伪动态
      • JavaScript(最常用)
      • VBScript
    • 无法与数据库进行交互(数据无法持久化用户无法交互)

1.4、动态Web

页面会动态展示,“web的页面展示的效果因人而异“。

image-20210915152623525

缺点:

  • 加入服务器的动态web的资源出现了错误,我们需要重新编写我们的后台程序
    • 停机维护

优点:

  • web页面可以动态的更新,每个用户所看到的页面不是一个页面
  • 它可以与数据库进行交互,保证数据的持久化。

2、web服务器的讲解

2.1、常见的web服务器

  • ASP

    • 微软开创的变成语言,在HTML语句中添加java代码

    • <%  java代码%>
      
  • PHP

    • 优点:运行速度快,性能好,跨平台、代码简洁。
    • 缺点:不适合大型的项目开发,无法承受大量的数据。
  • JSP/Servlet JSP的本质是Servlet

    • 优点:可以承载三高,高并发、高可用、高性能。

了解:B/S 浏览器/服务器 C/S 客户端/服务器

2…2、web服务器

  • IIS
  • tomcat

Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10.0.5**。**

作用:是一种被动操作,处理一些客户端的请求并进行返回请求

3、Tomcat

3.1、Tomcat的安装和配置

image-20210915202445569

image-20210915202618098

注:在tomcat中常见的问题

  • java环境变量配置存在问题,出现闪退现象
  • 出现闪退还可能是自己点电脑的兼容性问题
  • tomcat的中文乱码问题

3.2、tomcat的文件配置问题

image-20210915202951906

注:在tomcat中其主要的核心配置文件在conf文件夹下的server.xml文件中

其可以配置端口号,可以配置主机的名称。

https的端口号默认是443

mysql的端口号默认是3306

http的端口号默认的是80

  • 其默认的主机名为local hos t->127.0.01
  • 默认的网站的存放位置是:webapp

高难度面试题

请你谈谈网站是如何让访问的

  • 输入一个域名;点击回车

  • 检查本机的hosts文件夹下是否有这个域名的映射

  • 如果有,返回对应的IP地址

  • 如果没有,去DNS服务器上去寻找(全世界的域名都在上边)

4.配置环境变量

3.3、发布一个外部网站

将自己写的网页放在tomcat中的webapp的文件下便可以进行访问

一个网站应该有的结构

--webapps:tomcat服务器中的web目录
    -Root
    -网站的项目名称
    	-WEB-INF
    	-classes:java程序
    	-lib:web应用所依赖的jar包
    	-web.xml网站的配置文件
    -index.html 默认的首页
    -static
    	-css
    		-style.-css
    	-js
    	-img

4、HTTP

4.1、HTTP的定义

http(超文本传输协议),是一个简单的请求-响应协议,通常运行在TCP上

  • 超文本:html,字符串
  • 超文本:图片、音乐、定位、视频…

4.2、两个时代

  • http1.0
    • HTTP/1.0:代表客户端与web服务器连接后,只能获得一个web资源,断开连接
  • http2.0
    • HTTP/1.1:代表客户端与web服务器连接后,可以获得多个web资源,断开连接

4.3、Http请求

  • 客户端发送请求(Request)到服务器
  1. 请求行

    • 请求行中的请求方式:GET
    • 请求方式:GET 、POST
    • get:请求能够携带的参数比较的少,大小有限制,会在浏览器的URL地址栏显示数据的内容,不安全但是高效
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据的内容,安全但是不高效

    2.消息头

    Accept:告诉浏览器所支持的数据类型
    Accept-Encoding:表示浏览器支持的编码格式 GBK UTF-8 GB2312 ISO8859-1
    Accept-Language:告诉浏览器的语言环境
    Cache-Control:缓存控制
    Connection:告诉浏览器请求断开还是保持连接
    Host:表示主机.....
    

4.4、Http相应

服务器–响应–客户端

1、 响应体

Accept:告诉浏览器所支持的数据类型
Accept-Encoding:表示浏览器支持的编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器请求断开还是保持连接
Host:表示主机.....
Refresh:告诉客户端,多久刷刷一次
Location:让网页重定向

2、响应状态码(重点)

200:代表相应成功

3xx:请求重定向

  • 重定向的定义:你重新到我给你的新位置去

404:找不到资源

  • 资源不存在

5xx:服务器代码错误 500(最为常见)

502:网关错误

常见的面试题

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示后来经历了什么?

5、Maven

5.1、Maven项目架构管理工具

作用:方便导入jar包

Maven的核心思想:约定大于配置

  • 有约束不要去违反。必须按照规则进行

Maven会规定好如何进行编写Java,必须按照这个规范

5.2、下载安装Maven

官网:https://maven.apache.org/

image-20210916085008365

5.3、Maven环境配置

配置如下配置

  • M2_HOME:路径为maven目录下的bin目录
  • MAVEN_HOME:maven的家目录
  • PATH:配置maven下的bin目录

检测是否成功

image-20210916085543684

5.4、阿里云镜像

  • 镜像:mirrors
    • 加速相关包的下载
  • 国内金阿姨使用阿里云的镜像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf>
</mirror>

5.5、本地仓库

建立一个本仓库

 <localRepository>D:\Maven\apache-maven-3.8.1\maven-repo</localRepository>

5.6、在IDEA中使用maven

1、创建一个新的工程

2、选择Maven项目

image-20210917103128734

3、项目的命名

image-20210917105023369

4、选择自己的maven文件的位置

5、点击包的自动导入,最终显示导入成功

image-20210917105137007

5.7、创建一个普通的maven项目

1、先创建一个新的项目

image-20210917105426246

2、选择创建一个maven项目,但是不添加任何的选项

image-20210917105603578

image-20210917105637599

5.8、标记文件夹

image-20210917105950854

image-20210917110039194

第二种方法

image-20210917110114268

…(img-rzeZf3eF-1631848031395)]

第二种方法

[外链图片转存中…(img-3UMxsuUS-1631848031396)]

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

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

相关文章

LeetCode 热题 HOT 100 Java 题解 -- Part 2

练习地址 Part 1 : https://blog.csdn.net/qq_41080854/article/details/128829494 LeetCode 热题 HOT 100 Java 题解 -- Part 236. 二叉树的中序遍历 9437. 不同的二叉搜索树 9638. 验证二叉搜索树 9839. 对称二叉树 10140. 二叉树的层序遍历 10241. 二叉树的最大深度 10442.…

cycleGAN算法解读

本文参考&#xff1a;https://blog.csdn.net/Mr_health/article/details/112545671 1 CycleGAN概述 CycleGAN&#xff1a;循环生成对抗神经网络&#xff0c;是一种非监督学习模型。 Pix2pix方法适用于成对数据的风格迁移&#xff0c;而大多数情况下对于A风格的图像&#xf…

vue样式绑定(v-if)

文章目录一.第一次用vue框架二.要求:1.定义两种样式&#xff0c;一种描述正确的状态&#xff0c;一种描述错误的状态。2.在结构代码中定义一个块&#xff0c;实现绑定正确的样式状态。3.定义一个按钮&#xff0c;实现正确和错误两种状态的class切换。三.源代码四.效果一.第一次…

极客之选:用Rollup打包工具优化前端代码,让你成为前端领域的高手

前端开发面临着不断变化的技术和越来越复杂的项目需求&#xff0c;如何优化前端代码成为了前端开发人员必须要面对的挑战。本论文介绍了一个名为Rollup的打包工具&#xff0c;该工具可以帮助开发人员优化前端代码&#xff0c;减小代码体积&#xff0c;提高网站性能。本论文将介…

那些年用过的IDEA插件

今天和大家分享一下经常使用的IDEA的插件&#xff0c;希望有所帮助。一、IDEA插件CodeGlance2显示代码缩略图插件&#xff0c;方便查看代码。Lombok用于编译期间自动生成getter、setter、构造、toString等方法&#xff0c;简化代码。Mybatis Builder或MybatisXMapper接口和xml双…

2023雅虎邮箱不能注册?别急,这份教程教你成功注册雅虎邮箱

这几年&#xff0c;跨境电商的迅猛发展&#xff0c;越来越多人加入这片蓝海&#xff0c;跨境人拥有一个专业的邮箱账户显得尤为重要&#xff0c;它是商业交流和日常工作的必备工具。因此&#xff0c;雅虎邮箱成为了许多人的首选&#xff0c;全球范围内使用雅虎邮箱的人数是非常…

问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)

为了将灰度图像表示为频谱图&#xff0c;我们需要进行以下步骤&#xff1a; 加载图像并将其转换为灰度图像。对图像进行二维离散傅里叶变换。将变换结果表示为幅度谱和相位谱。可以对幅度谱和相位谱进行可视化&#xff0c;以查看频率分布。对幅度谱和相位谱进行逆变换&#xf…

做毕业设计,前端部分你需要掌握的6个核心技能

其实前端新手如果想要自己实现一套毕业设计项目并非简单的事&#xff0c;因为之前很多人一直还停留在知识点的阶段&#xff0c;而且管理系统和C端网站都需要开发&#xff0c;但现在需要点连成线了。所以在启动项目开发之前呢&#xff0c;针对前端部分&#xff0c;我列举一些非常…

react lazyLoad学习记录

react lazyLoad学习记录1.lazyLoad用处2.使用2.1 react-router-dom5版本写法2.2 react-router-dom6版本写法1.lazyLoad用处 默认例如首页&#xff0c;如果有好十几个甚至百个路由&#xff0c;react是会默认一下全部把路由组件一下全部加载的&#xff0c;极可能造成页面卡顿。r…

mysql数据库之sql语句性能分析工具

一、sql执行频率。 mysql客户端连接成功后&#xff0c;通过show [session | global] status 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT/UPDATE/DELETE的访问频次。 #一个下划线代表一个字符 show global status like com_; 二、慢查…

冲鸭!33% 程序员月薪达到 5 万元以上~

2023年&#xff0c;随着互联网产业的蓬勃发展&#xff0c;程序员作为一个自带“高薪多金”标签的热门群体&#xff0c;被越来越多的人所关注。在过去充满未知的一年中&#xff0c;他们的职场现状发生了一定的改变。那么&#xff0c;程序员岗位的整体薪资水平、婚恋现状、职业方…

注意,摸鱼程序员常用的9个小技巧,早点下班不秃头

9个养生小技巧&#xff0c;祝大家不秃头嗨害大家好鸭&#xff01; 我是小熊猫~毕竟摸鱼一时爽&#xff0c;一直摸一直爽嘛~一、整理字符串输入二、迭代器切片&#xff08;Slice&#xff09;三、跳过可迭代对象的开头四、只包含关键字参数的函数 (kwargs)五、创建支持「with」语…

【C/C++】getchar()在处理字符输入时的一个细节

1、当我们进行“输入”后&#xff0c;无论输入一个字符或者是一个数字、一个字符串。都会自动产生一个换行符&#xff0c;而这个不起眼的回车符(‘\n’)也是一个‘字符’。如果我们需要连续多次输入‘字符’&#xff0c;则需要在每次输入字符后&#xff0c;及时处理这个换行符。…

前端二面vue面试题总结

什么是 mixin &#xff1f; Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项&#xff0c;例如生命周期 hook、 方法等&#xff0c;则可以将其编写为 mixin&#xff0c;并在组件中简单的引用它。然后将 mixin 的内容合并到组件中…

如何使用BackupOperatorToDA将Backup Operators用户权限提升为域管理员

关于BackupOperatorToDA BackupOperatorToDA是一款功能强大的红队提权工具&#xff0c;该工具能够在不使用域控制器RDP或WinRM的情况下&#xff0c;帮助广大研究人员将Backup Operators组的成员账号提升为域管理员权限。 如果红队研究人员在渗透测试的过程中&#xff0c;拿到…

代码随想录之数组(力扣题号)

69 x的平方根 这题需要注意的点在于数据的数据范围导致计算x的平方可能会超过Integer范围 超出范围之后的大小判断就会出错 if(2147488281>2147395600) System.out.println("yes"); //没有输出 注意不能这样&#xff0c;会超出Integer范围解决&#xff1a;前面…

百度文心大模型开发者斩获CCF BDCI大赛唯一『最佳算法能力奖』

‍2023年2月24日至25日&#xff0c;中国计算机学会&#xff08;CCF&#xff09;主办、苏州市吴江区人民政府支持&#xff0c;苏州市吴江区工信局、吴江区东太湖度假区管理办公室、苏州市吴江区科技局、CCF大数据专家委员会及其他专业委员会等多家组织单位共同承办的大数据与AI领…

在C#中使用互斥量解决多线程访问共享资源的冲突问题

在阿里云上对互斥量的概述&#xff1a;互斥量的获取是完全互斥的&#xff0c;即同一时刻&#xff0c;互斥量只能被一个任务获取。而信号量按照起始的计数值的配置&#xff0c;可以存在多个任务获取同一信号量的情况&#xff0c;直到计数值减为0&#xff0c;则后续任务无法再获取…

王道操作系统课代表 - 考研计算机 第四章 文件管理 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记&#xff0c;以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助&#xff01;&#xff01;&#xff01; 关于对 “文件管理” 章节知识点总结的十分全面&#xff0c;涵括了《操作系统》课程里的全部…

Python使用异步线程池实现异步TCP服务器交互

背景&#xff1a; 实现客户端与服务端交互&#xff0c;由于效率原因&#xff0c;要发送与接收异步&#xff0c;提高效率。 需要多线程&#xff0c;本文用线程池管理。 common代码&#xff1a; import pickle import struct import timedef send_msg(conn, data):time.sleep(…