Day16_学点儿JavaEE_理论知识_Tomcat、JSP、Servlet

1 软件的结构

C/S (Client - Server 客户端-服务器端)

典型应用:QQ软件 ,飞秋,印象笔记。

特点:

  1. 必须下载特定的客户端程序。
  2. 服务器端升级,客户端升级。

B/S (Broswer -Server 浏览器端- 服务器端)

典型应用: 腾讯官方(www.qq.com) 163新闻网站(俗称:网站)

特点:

  1. 不需要安装特定的客户端(只需要安装浏览器即可!!)
  2. 服务器端升级,浏览器不需要升级!!!!
    JavaWeb的程序就是b/s软件结构!!!

常见的市面上 应用服务软件

  1. WebLogic:BEA 公司的产品。 收费的。
  2. WebSphere : IBM公司的产品。收费的。
  3. JBoss:Redhat 公司的产品。收费的。
  4. Tomcat : 开源组织 Apache 的产品。免费的。

服务器作用:把服务器端的资源共享给外部访问。

2 Servlet

2.1 什么是Servlet

Servlet是运行在服务端的Java小程序,是sun公司提供的一套规范(接口),用来处理客户端的请求响应动态资源给浏览器
JSP本质是Servlet

实现步骤:

  1. 创建类继承HttpServlet
  2. 覆盖未实现的方法--service方法

2.2 Servlet生命周期

JSP+Servlet是一个半成品的框架,我们是在这套框架上开发,所以要学习和遵守其规范

Servlet 程序的生命周期由 tomcat服务器控制 的!!!!

Servlet 重要的四个生命周期方法

  1. 什么时候初始化
  2. 什么时候被调用
  3. 什么时候被销毁

构造方法:创建servlet对象的时候被调用。默认情况下,第一次访问这个servlet的时候调用构造方法创建对象。构造方法只被调用一次,servlet对象在tomcat是单实例的。
init方法:initial 创建完servlet对象时候调用。只调用1次。
service:每次浏览器发出请求时候调用这个方法。调用n次。
destory:销毁servlet对象的时候调用。停止服务器或者重新部署web应用时候会销毁servlet对象。只调用1次。

Servlet只创建一次,是单例模式(这个类的对象只会有一个)。每次请求的时候会创建一个新的request、response。

java 复制代码
LifeServlet.LifeServlet()
LifeServlet.init()
LifeServlet.service()
LifeServlet.service()
LifeServlet.service()
LifeServlet.destroy()

3 JSP

Servlet的作用: 用Java语言开发动态资源的技术!!!

JSP的作用:用Java语言(+html语言)开发动态资源的技术!!!

JSP本质就是Servlet!!!

3.1 JSP脚本(脚本就是一段代码)

语法:<%java代码 %>

作用: 执行java代码

3.2 JSP表达式

语法:<%=变量或表达式%>

作用: 向浏览器输出变量的值或表达式计算的结果

3.3 浏览器与JSP、Servlet

浏览器既可以访问JSP也可以访问Servlet,但是绝大部分情况下浏览器不直接访问JSP,JSP主要用来展示数据,

所以绝大部分情况是先访问Servlet查找出数据来之后转发到JSP页面进行展示。

4 URL路径

java 复制代码
http://localhost:8080/JavaWeb/index.jsp?method=selectAll&id=2

http : 协议(http协议)
localhost:域名(为了方便记忆,最终定位地址还是要将域名转换为ip地址) local:本地 host:主机

本地域名:localhost 127.0.0.1

外部域名www.baidu.com
8080:端口号

8080:tomcat默认端口

3306:mysql默认端口
JavaWeb:找到部署到webapps下面的JavaWeb这个应用
index.html:资源的名字


DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

5 Tomcat

5.1 Tomcat 的目录结构

复制代码
├── bin: 存放 tomcat 的命令。binary
│   ├── startup.bat
│   ├── shutdown.bat 
│   └── ...
├── conf : 存放 tomcat 的配置信息。其中 server.xml文件是核心的配置文件。  configuration
├── lib :支持 tomcat软件运行的jar包。其中还有技术支持包,如 servlet,jsp  lib:library
├── logs :运行过程的日志信息
├── temp: 临时目录   temp:temporary
├── webapps : 共享资源目录。 web 应用目录。    application 应用程序
└── work : tomcat的运行目录。 jsp 运行时产生的临时文件就存放在这里

5.2 项目部署

工作空间项目(写代码看到的) 和 tomcat部署的web项目是有差别的:

真正访问的是部署到tomcat的web项目下面的所有资源

tomcat部署的web项目:

复制代码
├── WEB-INF目录:
│   ├── web.xml:web项目的核心配置文件
│   ├── classes目录:放置字节码文件的目录(把src下面java代码编译后放到这个目录下面)
│   └── lib目录:放置依赖的jar包
└── index.jsp
相关推荐
ss2733 分钟前
线程池工作机制:从任务提交到执行的完整决策流程
java·开发语言
yaoxin52112314 分钟前
276. Java Stream API - 使用 flatMap 和 mapMulti 清理数据并转换类型
java·开发语言·windows
Vic1010117 分钟前
【无标题】
java·数据库·分布式
摇滚侠20 分钟前
Java 零基础全套视频教程,异常,处理异常,自定义异常,笔记 124-129
java·笔记
伯明翰java33 分钟前
【无标题】springboot项目yml中使用中文注释报错的解决方法
java·spring boot·后端
企微自动化37 分钟前
企业微信二次开发:深度解析外部群主动推送的实现路径
java·开发语言·企业微信
_修铁路的37 分钟前
【Poi-tl】 Word模板填充导出
java·word·poi-tl
武子康40 分钟前
Java-216 RocketMQ 4.5.1 在 JDK9+ 从0到1全流程启动踩坑全解:脚本兼容修复(GC 参数/CLASSPATH/ext.dirs)
java·大数据·分布式·消息队列·系统架构·rocketmq·java-rocketmq
austin流川枫40 分钟前
🔥MySQL的大表优化方案 (实战分享)
java·mysql·性能优化
码界奇点43 分钟前
基于Spring Boot和Vue.js的视频点播管理系统设计与实现
java·vue.js·spring boot·后端·spring·毕业设计·源代码管理