今日内容

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

web相关概念回顾

1. 软件架构1. C/S:客户端/服务器端2. B/S:浏览器/服务器端2. 资源分类1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析* 如: html,css,JavaScript2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器* 如:servlet/jsp,php,asp....3. 网络通信三要素1. IP:电子设备(计算机)在网络中的唯一标识。2. 端口:应用程序在计算机中的唯一标识。 0~655363. 传输协议:规定了数据传输的规则1. 基础协议:1. tcp:安全协议,三次握手。 速度稍慢2. udp:不安全协议。 速度快

web服务器软件:

* 服务器:安装了服务器软件的计算机
* 服务器软件:接收用户的请求,处理请求,做出响应
* web服务器软件:接收用户的请求,处理请求,做出响应。* 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目* web容器* 常见的java相关的web服务器软件:* webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。* webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。* JBOSS:JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。* Tomcat:Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp。开源的,免费的。* JavaEE:Java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范* Tomcat:web服务器软件1. 下载:http://tomcat.apache.org/2. 安装:解压压缩包即可。* 注意:安装目录建议不要有中文和空格3. 卸载:删除目录就行了4. 启动:* bin/startup.bat ,双击运行该文件即可* 访问:浏览器输入:http://localhost:8080 回车访问自己http://别人的ip:8080 访问别人* 可能遇到的问题:1. 黑窗口一闪而过:* 原因: 没有正确配置JAVA_HOME环境变量* 解决方案:正确配置JAVA_HOME环境变量2. 启动报错:1. 暴力:找到占用的端口号,并且找到对应的进程,杀死该进程* netstat -ano2. 温柔:修改自身的端口号* conf/server.xml* <Connector port="8888" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8445" />* 一般会将tomcat的默认端口号修改为80。80端口号是http协议的默认端口号。* 好处:在访问时,就不用输入端口号5. 关闭:1. 正常关闭:* bin/shutdown.bat* ctrl+c2. 强制关闭:* 点击启动窗口的×6. 配置:* 部署项目的方式:1. 直接将项目放到webapps目录下即可。* /hello:项目的访问路径-->虚拟目录* 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。* war包会自动解压缩2. 配置conf/server.xml文件在<Host>标签体中配置<Context docBase="D:\hello" path="/hehe" />* docBase:项目存放的路径* path:虚拟目录3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写<Context docBase="D:\hello" />* 虚拟目录:xml文件的名称* 静态项目和动态项目:* 目录结构* java动态项目的目录结构:-- 项目的根目录-- WEB-INF目录:-- web.xml:web项目的核心配置文件-- classes目录:放置字节码文件的目录-- lib目录:放置依赖的jar包* 将Tomcat集成到IDEA中,并且创建JavaEE的项目,部署项目。

Servlet: server applet

* 概念:运行在服务器端的小程序* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。* 将来我们自定义一个类,实现Servlet接口,复写方法。* 快速入门:1. 创建JavaEE项目2. 定义一个类,实现Servlet接口* public class ServletDemo1 implements Servlet3. 实现接口中的抽象方法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>* 执行原理:1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。3. 如果有,则在找到对应的<servlet-class>全类名4. tomcat会将字节码文件加载进内存,并且创建其对象5. 调用其方法* Servlet中的生命周期方法:1. 被创建:执行init方法,只执行一次* Servlet什么时候被创建?* 默认情况下,第一次被访问时,Servlet被创建* 可以配置执行Servlet的创建时机。* 在<servlet>标签下配置1. 第一次被访问时,创建* <load-on-startup>的值为负数2. 在服务器启动时,创建* <load-on-startup>的值为0或正整数* Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的* 多个用户同时访问时,可能存在线程安全问题。* 解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值2. 提供服务:执行service方法,执行多次* 每次访问Servlet时,Service方法都会被调用一次。3. 被销毁:执行destroy方法,只执行一次* Servlet被销毁时执行。服务器关闭时,Servlet被销毁* 只有服务器正常关闭时,才会执行destroy方法。* destroy方法在Servlet被销毁之前执行,一般用于释放资源* Servlet3.0:* 好处:* 支持注解配置。可以不需要web.xml了。* 步骤:1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml2. 定义一个类,实现Servlet接口3. 复写方法4. 在类上使用@WebServlet注解,进行配置* @WebServlet("资源路径")@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface WebServlet {String name() default "";//相当于<Servlet-name>String[] value() default {};//代表urlPatterns()属性配置String[] urlPatterns() default {};//相当于<url-pattern>int loadOnStartup() default -1;//相当于<load-on-startup>WebInitParam[] initParams() default {};boolean asyncSupported() default false;String smallIcon() default "";String largeIcon() default "";String description() default "";String displayName() default "";}

IDEA与tomcat的相关配置

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

TomcatServlet入门学习相关推荐

  1. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  2. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  3. 3dmax Vray建筑可视化入门学习教程

    面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授,不需要任何经验 大小解压后:3.25G 时长4h 6m 1280X720 MP4 语言:英语+ ...

  4. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  5. Maya游戏角色绑定入门学习教程 Game Character Rigging for Beginners in Maya

    准备好开始为游戏制作自己的角色动画了吗? 你会学到什么 了解Maya的界面 优化并准备好你的模型,为游戏做准备 了解关节以及如何使用它们来构建健壮的角色骨骼,以便在任何游戏引擎中制作动画 了解IK和F ...

  6. 三维地形制作软件 World Machine 基础入门学习教程

    <World Machine课程>涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形. 你会学到什么 为渲染或游戏开发创建高分辨率.高细节的地形. 基于Worl ...

  7. Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)

    要求 下载并安装Blender.免费下载和免费用于任何目的. 描述 加入我的动画课程. 在本课程中,我将从头开始讲述在Blender中创建动画场景的过程. 从第一步到最终渲染.在这个课程中,我们将使用 ...

  8. UE5真实环境设计入门学习教程

    大小解压后:4.69G 时长4h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 虚幻引擎5–面向初学者的真实环境设计 Unreal Engine 5 – Rea ...

  9. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush

    ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ...

最新文章

  1. 【青少年编程】【Scratch】04 事件模块
  2. 消息队列系列(三):.Rabbitmq Trace的使用
  3. go http的按序号发送,按序号接收
  4. 到底能不能做一辈子的程序员——大龄程序员将何去何从
  5. 如何正确的使用微信公众号
  6. 事理图谱:一种纯学术需求、无法落地、漏洞百出的新技术或新概念?
  7. 国内最全最详细的hadoop2.2.0集群的HA高可靠的最简单配置
  8. PHP百度收录量查询接口源码,PHP百度收录量查询接口源码
  9. 第一章 Windows编程基础(1~4课)
  10. python读excel并写入_Python 写入和读取Excel数据
  11. 吴恩达神经网络和深度学习-学习笔记-44-交并比IoU + 非极大值抑制
  12. 【java虚拟机序列】java中的垃圾回收与内存分配策略
  13. Windows Sockets网络编程读书笔记(及简单C/S实现)
  14. 【Echarts】地图 中国城市经纬度Json
  15. 在计算机中怎么找到打字的文件,想在电脑上打字,然后把电脑上写的字,弄到纸上怎么做...
  16. cxf调用webservice
  17. CC2541 BLE源码阅读知识积累之OSAL小结
  18. GWAS计算BLUE值4--联合方差分析演示
  19. 硬件设计学习笔记---第一季第一集
  20. java 截取字符串第一个字符

热门文章

  1. mysql update 左连接_使用左连接的MySQL更新查询
  2. 均值归一化_机器学习之归一化(Normalization)
  3. 物联网卡因为什么这么火,主要有哪些优势?
  4. react-navigation 6.x学习
  5. python:想要什么资源,直接上去莽就完事了~
  6. 卡特兰数 java,Catalan数(卡特兰数)
  7. OpenGL 之 齐次坐标
  8. GO和KEGG富集分析详细步骤
  9. 认真的做羞羞的事 一颗种子的自我分享
  10. biee for mysql_BIEE11GRpd合并