Java Web(五)Web

简介: 主要是讲解了web服务器tomcat的使用

Web

Java技术栈

  • B/S架构:Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Wb资源,服务器把Wb资源发送给浏览器即可
  • 好处:易于维护升级:服务器端升级后,客户端无需任何部署就可以使用到新的版本

网络异常,图片无法展示
|

  • 静态资源:HTML、CSS、JavaScript、图片等。负责页面展现
  • 动态资源:Servlet、JSP等。负责逻辑处理
  • 数据库:负责存储数据
  • HTTP协议:定义通信规则
  • Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据

一.HTTP

  • 概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

网络异常,图片无法展示
|

  • HTTP协议特点
  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
    缺点:多次请求间不能共享数据。Java中使用会话技术(Cookie、Session)来解决这个问题优点:速度快
1.请求数据的格式
  • 请求数据分为3部分:
  1. 请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本
  2. 请求头:第二行开始,格式为key:value形式。
  3. 请求体:POST请求的最后一部分,存放请求参数
  • 常见的HTTP请求头:
  • Host:表示请求的主机名
  • User-Agent:.浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 Chrome/79,IE浏览器的标识类似Mozilla/5.0(Windows NT)like Gecko;
  • Accept:表示浏览器能接收的资源类型,如text/,image/或者/表示所有;
  • Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
  • Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip,deflate等。
  • GET请求和POST请求区别:1.GET请求请求参数在请求行中,没有请求体。   POST请求请求参数在请求体中2.GET请求请求参数大小有限制,POST没有
2.响应数据格式
  • 响应数据分为3部分:

1.响应行:响应数据的第一行。其中HTTP/1.1表示议版本,200表示响应状态码,OK表示状态码描述2.响应头:第二行开始,格式为key:value形式3.响应体:最后一部分。存放响应数据

  • 常见的HTTP响应头:
  • Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
  • Content-Length:表示该响应内容的长度(字节数):
  • Content-Encoding:表示该响应压缩算法,例如gzip;
  • Cache-Control:指示客户端应如何缓存,例如max-age=300
  • 表示可以最多缓存300秒
2.1状态码大类
状态码分类 说明
1XX 响应中一一临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它
2XX 成功一一表示请求已经被成功接收,处理已完成
3XX 重定向一一重定向到其它地方:它让客户端再发起一个请求以完成整个处理。
4XX 客户端错误一一处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等
5XX 服务器端错误一一处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等
2.2常见的响应状态码
状态码 英文描述 解释
200 OK 客户瑞请求成功,即处理成功,这是我们最想看到的状态码
302 Found 指示所请求的资源已移动到由Location响应头给定的URL,浏览器会自动重新访问到这个页面
304 Not Modified 告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404 Not Found 请求资源不存在,一般是URL输入有误,或者网站资源被删除了
428 Precondition Required 服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429 Too Many Requests 太多请求,可以限制客户端请求某个资源的数量,配合Retry-After(多长时间后可以请求)响应头一起使用
431 Request Header Fields Too Large 请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
405 Method Not Allowed 请求方式有误,比如应该用GET请求方式的资源,用了POST
500 Internal Server Error 服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503 Service Unavaiable 服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好
511 Network Authentication Required 客户端需要进行身份验证才能获得网络访问权限

二.Web服务器

  • Web服务器是一个应该程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Wb开发更加便捷。主要功能是“提供网上信息浏览服务”

1.Web服务器作用?封装HTTP协议操作,简化开发可以将web项目部署到服务器中,对外提供网上浏览服务2.Tomcat是一个轻量级的Web服务器,支持Servlet/小SP少量JavaEE规范,也称为Web容器,Servlet容器

1.Tomcat简介
  • 概念:Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
  • JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDl、EJB、RMl、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
  • Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖于Tomcat才能运行
  • 官网:https://tomcat.apache.org/
2.Tomcat基本使用
  • 下载:官网下载
  • 安装:绿色版,直接解压即可
  • 卸载:直接删除目录即可
  • 启动:双击:bin\startup.bat

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 关闭:

1.直接×掉运行窗口:强制关闭

2.bin\shutdown.bat:正常关闭

3.Ctrl+C:正常关闭

3.配置
  • 配置

1.修改启动端口号:config/server.xml

<Connectorport="8080"protocol="HTTP/1.1"

          connectionTimeout="20000"

          redirectPort="8443"/>

注:HTTP协议默认端口号为80,如果将Tomcati端口号改为80,则将来访问Tomcat时,将不用输入端口号

  • 启动时可能出现的问题:

1.端口号冲突:找到对应程序,将其关闭掉

网络异常,图片无法展示
|

2.启动窗口一闪而过:检查JAVA_HOME环境变量是否正确配置

4.部署项目
  • Tomcat部署项目:将项目放置到webapps目录下,即部署完成
  • 一般JavaWeb项目会被打成war包,然后将war包放到webapps目录下,Tomcats会自动解压缩war文件

网络异常,图片无法展示
|

5.Web项目结构
5.1IDEA创建Maven Web项目
  • Web项目结构:

网络异常,图片无法展示
|

  • 编译后的ava字节码文件和resources的资源文件,放到WEB-lNF下的classes目录下
  • pom.xml中依赖坐标对应的jar包,放入WEB-NF下的Iib目录下
  • 使用骨架
  • 骨架:项目模板

1.选择web项目骨架,创建项目

网络异常,图片无法展示
|

2.删除pom.xml中多余的坐标

网络异常,图片无法展示
|

3.补齐缺失的目录结构

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 不使用骨架

1.选择web项目骨架,创建项目

网络异常,图片无法展示
|

此处不勾选

2.pom.xml中添加打包方式为war

网络异常,图片无法展示
|

3.补齐缺失的目录结构:webapp

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

6.IDEA中使用Tomcat
6.1集成本地Tomcat
  • 将本地Tomcat集成到ldea中,然后进行项目部署即可

网络异常,图片无法展示
|

6.2Tomcat Maven插件
  • pom.xml添加Tomcat插件

网络异常,图片无法展示
|

  • 使用Maven Helper插件快速启动项目,选中项目,右键->Run Maven->tomcat7:run

网络异常,图片无法展示
|


目录
相关文章
|
12天前
|
前端开发 JavaScript Java
计算机Java项目|基于web的铁路订票管理系统
计算机Java项目|基于web的铁路订票管理系统
|
14天前
|
传感器 小程序 搜索推荐
(源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
通过电子班牌设备和智慧校园数据平台的统一管理,在电子班牌上,班牌展示、学生上课刷卡考勤、考勤状况汇总展示,课表展示,考场管理,请假管理,成绩查询,考试优秀标兵展示、校园通知展示,班级文化各片展示等多种化展示。
38 0
(源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
|
12天前
|
前端开发 JavaScript Java
计算机Java项目|基于Web的足球青训俱乐部管理后台系统的设计与开发
计算机Java项目|基于Web的足球青训俱乐部管理后台系统的设计与开发
|
3天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
3天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
3天前
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
|
3天前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
|
6天前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
36 7
|
18天前
|
Java
Java web Filter过滤器
一、什么是Filter过滤器 它是java web的三大组件之一,三大组件分别为:servlet、filter、listener; 它的作用主要是用于拦截请求,过滤响应;拦截请求常见的应用场景有日记记录,权限校验。。。
21 3
|
26天前
|
前端开发 JavaScript Java
Java与CSS:解析在Web开发中的协同作用
Java与CSS:解析在Web开发中的协同作用