今日知识

1. web相关概念回顾
2. web服务器软件:tomcat
3. servletr入门学习

web相关概念回顾

1. 软件架构
1. C/S:客户端/服务器端
2. B/S:浏览器/服务端
2. 资源分类
1. 静态资源:html,css,js
2. 动态资源:每个用户访问相同的资源,可能有不一样的结果,称为:动态资源
* sevlet /jsp,php,asp
3. 网络通信三要素
1. IP:电子设备(计算机)在网络中的唯一标识。
2. 端口:应用程序在计算机中的唯一标识。 0~65536
3. 传输协议:规定了数据传输的规则
1. tcp协议:安全,三次握手,速度慢
2. udp:不安全的协议,速度快

web服务器软件介绍:

1. 服务器概念:安装 了服务器软件的计算机
2. 服务器软件:接收用户请求,处理请求,作出响应
3. Web服务器软件:接收用户请求,处理请求,作出响应
* web服务器软件中,可以部署web项目,让用户通过浏览器访问这些项目
* web容器
4. 常见的java'相关的web服务器软件
* webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* JBOSS:JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* Tomcat:Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp。开源的,免费的。
5. JAVAEE:java语言在企业级开发中使用的技术规范总和,一共13项大的规范。

Tomcat的使用

1. 下载:http://tomcat.apache.org/
2. 安装:直接解压即可,免安装
3. 卸载:直接删除目录就行了
4. 启动:
* bin/startup.bat,双击运行该文件即可
* 访问:http://localhost:8080.//会出访问自己
* http://别人的ip:8080.//会出访问自己
* 可能遇到的问题:
1. 黑窗口一闪而过:原因: 没有正确配置JAVA_HOME环境变量
2. 启动报错:
* 1.找到占用的端口号,并且找到对应的进程,杀死该进程
* netstat-ano
* 2. 修改自身的端口号
* conf/server.xml
* <Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8445" />
* 一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号。
* 好处:在访问时,就不用输入端口号
5. 关闭:
1. 正常关闭:
* bin/shutdown.bat
* ctrl+c
2. 强制关闭:
* 点击启动窗口的×
6. 配置
1. 部署方式
1. 直接将项目放到webapps目录下即可
2. ./hello:项目的访问--》虚拟目录
3. 简化部署:将我们的项目打成war包(压缩包,后缀名改为war),再将war包放置到webapps目录下。
* war包会自动解压缩
2. 配置conf/server.xml
1. 在<Host>标签体中配置
2. <Context docBase="D:\hello" path="/hehe" />
* docBase:项目存放的路径
* path:虚拟目录(就是将原地址的重命名)
3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写
<Context docBase="D:\hello" />
* 虚拟目录:xml文件的名称
4. 静态项目和动态项目:
* 目录结构
* java动态项目的目录结构:
-- 项目的根目录
-- WEB-INF目录:
-- web.xml:web项目的核心配置文件
-- classes目录:放置字节码文件的目录
-- lib目录:放置依赖的jar包 5. 将Tomcat集成到IDEA中,并且创建JavaEE的项目,部署项目。

servlet

1. 概念:运行在服务器端的小程序
* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。
* 将来我们自定义一个类,实现Servlet接口,复写方法。
2. 快速入门
1. 创建JavaEE项目
2. 定义一个类,实现Servlet接口
3. 实现接口中发的方法
4. 配置Servlet
在web.xml中配置
<!--配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
3. 执行原理
1. 当服务器接收到客户端的浏览器请求后,会解析请求URL路径,获取访问Servlet的资源路径。
2. 查找web.xml文件,是否有对应的<url-pattern>标签内容
3. 如果有,就去找匹配的<servlet-class>全类名
4. tomcat将该类的字节码文件加载到内存,并创建对象
5. 调用其方法
4. sevlet的生命周期
1. 被创建是执行init方法,只执行一次
* 默认情况下,第一次被访问时,Servlet被创建
* 可以配置Servlet的创建时机
* 在<servlet>标签下配置
1. 第一次被访问时,创建
* <load-on-startup>的值为负数
2. 在服务器启动时,创建
* <load-on-startup>的值为0或正整数
* Servlet的init方法:只执行一次,这说明Servlet在内存中只存在一个对象,Servlet是单列的
* 多个用户访问是可能出现多线程问题
* 解决:尽量不要在Servlet中定义成员变量,即使定义成员变量,也不要修改其值
2. 提供服务:执行service方法,执行多次
* 每次访问Servelt时,Servlet都会执行一次
3. 被销毁,执行dostroy方法,只执行一次
* Servlet关闭时,Servlet被销毁
* 只要服务器正常关闭,才会执行destroy方法
* destroy在Servlet被销毁之前执行,一般用于释放资源
5. Servlet3.0
1. 好处:
* 支持注解配置,可以不用web.xml了
2. 步骤
1. 创建JavaEE项目,选择Servle的3.0.版本
2. 定义一个类,实现Servlet接口
3. 复写方法
4. 在类上使用@WebServlet注解,进项配置,

IDEA与Tomcat的相关配置

1. IDEA会为每一Tomcat部署的项目单独建立一份配置文件
* Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2017.3\system\tomcat\_JavaEE-code"
2. 工作空间项目 和 tomcat部署的web项目
* tomcat真正访问的是“tomcat部署的web项目”,"tomcat部署的web项目"对应着"工作空间项目" 的web目录下的所有资源
* WEB-INF目录下的资源不能被浏览器直接访问。
3. 断点调试:使用"小虫子"启动 dubug 启动

12-Tomcat&Servlet:的更多相关文章

  1. Servlet:从入门到实战学习(3)---Servlet实例【图文】

    本篇通过图文实例给大家详细讲述如何建立一个Servlet,配置好运行环境并成功连接到MYSQL的数据库,进行数据的查询展示. 1.项目创建:IDEA -> Create New Project ...

  2. Web开发之Tomcat&Servlet

    <!doctype html>01 - JavaEE - Tomcat&Servlet figure:first-child { margin-top: -20px; } #wri ...

  3. servlet:从入门到实战学习(1)---全·环境配置

    最近公司忙加班学习,学校忙助教工作,博客鸽了好久,后端学习工作过程中学了好多东西,趁着工作之余得空补补博客,算是整理下学习的东西. javaweb的后端研发需要学习的是tomcat+servlet+j ...

  4. TOMCAT ---> servlet概念

    1 TOMCAT ---> servlet概念 2 TOMCAT 目录结构 (各个文件夹都存放什么东西) 3 TOMCAT 程序的层级 web | |---- js,jsp,html,css ( ...

  5. Tomcat&Servlet

    Tomcat&Servlet 一.web开发相关的概念 1. 软件架构 1.1 C/S架构 C:Client客户端, S:Server服务器 比如:QQ.微信.大型网游 优点: 显示效果炫 安 ...

  6. Java Servlet:服务器小程序

    servlet:服务器小程序 servlet是一个接口,接口是一种规范,因此servlet是一种规范 一个类声明为抽象类的原因: 不包含抽象方法,不想被实例化 包含抽象方法,子类有对抽象方法的不同实现 ...

  7. Tomcat&Servlet笔记

    # 今日内容     1. web相关概念回顾     2. web服务器软件:Tomcat     3. Servlet入门学习 ## web相关概念回顾     1. 软件架构         1 ...

  8. Android网络(3):HttpClient作client,Tomcat Servlet作server的交互演示样例

    前面相继介绍了Android网络编程里的Socket传输图片.HttpURLConnection,今天看HttpClient. 第一部分:JavaEE版的Eclipse配置Tomcat [备注:开发后 ...

  9. tomcat&servlet初记

    tomcat&servlet初记 1. web相关概念 2. web服务器软件的学习:tomcat 3. servlet入门学习 web相关概念 1,软件架构 1,cs架构:客户端/服务器端 ...

  10. JavaWeb基础(day15)( http + tomcat + servlet + 响应)

    HTTP+Tomcat+Servlet+响应 HTTP HTTP  超文本传输协议(Hyper Text  Transfer  Protocol  ),一种网络协议. 协议的组成和过程 HTTP协议由 ...

随机推荐

  1. 单调队列优化 dp

    The only difference between easy and hard versions is the constraints. Vova likes pictures with kitt ...

  2. 【转】vue1.0与2.0的一些区别

    一.生命周期钩子的差别 vue1.0的生命周期如下: vue2.0的生命周期如下: 用一张表格来做对比: 二.代码片段 在vue1.0中可以在template编写时出现: <template&g ...

  3. C#中的委托是什么

    1.什么是委托?(方法作另一个方法的参数)delegate void MyDel(int value);    //声明委托类型和类一样,委托是用户自定义的类型,但是类是数据和方法的集合,而委托是持有 ...

  4. flink编译支持CDH6.2.0(hadoop3.0.0)

    准备工作 因为在编译时需要下载许多依赖包,在执行编译前最好先配置下代理仓库 <mirrors> <mirror> <id>nexus-aliyun</id&g ...

  5. Java单体应用 - Markdown - 02.基础语法

    原文地址:http://www.work100.net/training/monolithic-markdown-basic.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 ...

  6. Photoshop 2020安装教程

    首先来看看新增功能 [Photoshop 2020新增功能] 1.ipad和云文档 2.预设改进 3.新对象选择工具 4.转换行为一致 5.改进的属性面板 6.智能对到图层 7.增强的转换变形. 需要 ...

  7. Java and MongoDB link for project

    鉴于开源项目的发展,大力拥抱开源社区.发现Java和MongoDB不失为一个较好的选择. 与其他数据库一样,同样需要mongo-java-driver,构建了Java与MongoDB的交互. 1. 连 ...

  8. 张旭个人第4次作业—Alpha项目测试

    课程 软件工程实践 作业要求 个人第四次作业 团队名称 C#软工造梦厂 作业目标 运行其他组的项目找出问题及提出建议 一.测试人信息 姓名 张旭 学号 201731024123 团队名称 C#软工造梦 ...

  9. 使用dlib自带的面向梯度直方图(HOG)和线性分类器方法来检测人脸

    之前使用opencv里面CascadeClassifier(级联分类器)来识别人脸, 下面使用dlib库来实现人脸识别. dlib是一个开源的库,它包含了很多内容有机器学习,图像处理,数值算法等等. ...

  10. Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法

    下载解压mysql文件之后,中间出现了一些问题,终于解决,希望能帮助到需要的朋友. mysql官网下载地址:https://dev.mysql.com/downloads/mysql/点击打开链接 以 ...