web概念

  1. 软件架构

    C/S:客户端/服务器端

    B/s:浏览器/服务器端

  2. 资源分类

    • 静态资源

      所有用户访问后得到的结果是一样的,即被称为静态资源,比如html、css、javascript

    • 动态资源

      每个用户访问后得到的结果是不一样的,被称为动态资源。动态资源访问后需要转换为静态资源返回给浏览器端。比如:servlet、jsp、asp

  3. 网络通信三要素

    • IP

      电子设备在网络中的唯一标识

    • 端口

      应用程序在计算机中的唯一标识

    • 网络协议

      规定了数据传输的规则

      tcp:安全协议,三次握手。HTTP、FTP、SMTP、POP3

      udp:不安全协议,速度快。DHCP、DNS、RIP、SNTP

web服务器软件

  1. 服务器

    安装了服务器软件的计算机

  2. 服务器软件

    接受用户请求、处理用户请求、做出响应

  3. web服务器软件

    接受用户请求、处理用户请求、做出响应。在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。

    Tomcat就是一种web服务器软件。

Tomcat使用

  1. 部署项目

    • 直接放在webapps目录下即可,访问的时候文件夹/文件名

    • 简化部署,将项目打包成一个war包,将war包放在webapps目录下,war包会自动解压缩,访问方式同上

    • 配置conf/server.xml文件,可以将项目放在任意目录下

         在<Host>标签体中配置
      <Context docBase="D:\hello" path="/hehe" />
      

      docBase:项目存放的路径

      path:虚拟目录

    • 热部署方式(推荐)

      在conf/Catalina/localhost创建一个name.xml文件

         <Context docBase="D:\hello" />
      

      虚拟目录就是name

java动态项目

WEB-INF目录

–web.xml 核心配置文件

–classes目录 放置字节码文件的目录

–lib目录 放置依赖的jar包

IDEA集成Tomcat

servlet(server applet)

  1. 概念

    运行在服务端的小程序

    本质上是一个接口,定义了java类被浏览器访问到的规则

  2. 快速入门

    • 创建一个javaEE项目

    • 定义一个类实现servlet接口

    • 实现抽象方法

    • 配置servlet

      在web.xml文件中配置

      <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. 执行原理

    • 服务器解析浏览器输入的路径,解析URL路径,获取servlet资源路径
    • 查找web.xml,看是否有对应的中的内容
    • 如果有,再找到配置文件中对应的servlet的全类名,将该类字节码对象加载进内存,并创建字节码对象
    • 调用其方法
  4. servlet3.0支持注解配置

    @WebServlet("/requestDemo2")
    

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目录下的资源不能被浏览器直接访问。

TomcatServlet快速入门相关推荐

  1. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  2. 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧

    异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...

  3. Spring Boot 2 快速教程:WebFlux 快速入门(二)

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...

  4. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  5. 《iOS9开发快速入门》——导读

    本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...

  6. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  7. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

  8. OpenStack快速入门

    OpenStack云计算快速入门(1) 该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装.我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解.我 ...

  9. Expression Blend实例中文教程(2) - 界面快速入门

    上一篇主要介绍Expression系列产品,另外概述了Blend的强大功能,本篇将用Blend 3创建一个新Silverlight项目,通过创建的过程,对Blend进行快速入门学习. 在开始使用Ble ...

最新文章

  1. C++:随笔8---命名空间
  2. 中山大学“核技术灭蚊”上热搜,广州蚊子工厂日产500万只绝育蚊子|Nature
  3. 皮一皮:这才是持之以恒的专一...
  4. python爬虫正则表达式实例-python爬虫 正则表达式解析
  5. access窗体中再制作查询窗体_Access
  6. SpringBoot 2.x 整合Mybatis一:基础
  7. dede config.chche.inc.php,dede/config.php · 辉辉菜/三强源码 - Gitee.com
  8. tomcat做成服务
  9. Java final 关键字简述
  10. fragment+tabhost与viewpager
  11. Unity Occlusion Culling 遮挡剔除研究
  12. cosnπ为什么是离散信号_奥本海姆《信号与系统》(第2版)笔记和课后习题(含考研真题)详解(下册)复习答案考研资料...
  13. python 写入文件时编码问题
  14. 在Linux中打印常用书信与信封(转)
  15. css border设置为透明
  16. 洛谷Java入门级代码之分汽水
  17. python音频处理(持续更新)
  18. Metasploit——渗透攻击模块(Exploit)
  19. 网易mumu模拟器的使用
  20. Bootstrap关于导航条点击后移出此区域背景颜色变白

热门文章

  1. 【java】dispose()方法与setVisible()方法
  2. 长链和短链的区别(转载)
  3. 分布式锁以及三种加锁方式
  4. codemirror 执行PHP,CodeMirror 使用大全
  5. Genymotion的使用中文手册
  6. Mac npm run dev Permission denied
  7. CSS中文本风格值italic 和 oblique 的区别
  8. VC进程的创建、终止
  9. Kubernetes全栈架构师(Docker基础)--学习笔记
  10. 三维综合网格化智慧排水系统