注:此系列javaweb的知识是我在一位“孤傲苍狼”的园友学习后记下来的笔记,并非原创^_^

Web开发的基本概念

web应用程序——提供浏览器访问的程序,也成为web应用,包含静态或动态资源;所谓的动态资源,是指web的页面效果会因事因人而变,会通过程序运行和连接数据库后取出不同的数据;

而这些web应用资源需通过web服务器管理后才能被外界访问,这个过程称为虚拟目录的映射;

web服务器——是指一种被动的计算机程序,接受请求,处理请求并返回浏览器所请求的资源;

初学Web开发我用的是Tomcat服务器,也是一个实现了JAVAEE标准的最小web服务器,支持JSP及Servlet规范,且性能稳定、开源,因而受java爱好者的喜爱且得到软件开发商的认可;

关于tomcat的安装配置大家网上查询即可,要弄清楚的地方有:

  • JAVA_HOME环境变量问题,因为启动Tomcat是要依赖JDK的
  • conf文件夹里server.xml配置文件的端口、映射虚拟目录、虚拟主机的配置问题

当我们启动了web服务器,输入了虚拟主机、端口以及资源的映射目录即url,如:http://www.xxx.com:8080/xxx/xxx.jsp后,访问并获取web服务器资源,其中间发生了什么呢?

  • 根据主机名即域名通过DNS获取服务器所在主机的ip地址;
  • 通过ip地址连接到web服务器后使用http协议发送请求,会以Stream流的形式传输数据,告诉服务器自己要的资源是什么,然后等待服务器的响应;
  • 服务器接收并解析数据后,根据请求运行并获取相应的资源后再以Stream流的形式传回给浏览器

JavaWeb应用的组成结构

JavaWebApp:web应用所在的目录

->html、jsp、css、js等文件,位于根目录下,可以被外界直接访问;

->WEB-INF目录;包含java类、jar包类、web应用配置文件,目录里的文件只能通过web服务器调用,不能直接访问;

->class目录-----(java类文件)

->lib目录-----(java类文件运行所依赖的jar包)

->web.xml文件-----(web应用的配置文件)

这些文件的存放需要按规则存放,不然可能导致web服务器的报错;

Tomcat服务器的连接及处理请求过程

tomcat服务器的启动是根据server.xml配置文件启动的,因此要了解其过程我们需打开server.xml文件;

启动tomcat首先启动的就是Server;

随后启动Server里面的Service;

再启动多个Connector连接器,每个连接器都在等待客户机的连接,不过连接器并不处理请求,而是将请求交给Engine引擎去处理:

Engine引擎解析请求后会得到请求想要访问的Host,然后将其交给对应的Host;

Host接受后会解析其请求的具体web应用;每个web应用会对应一个Context

java_第一年_JavaWeb(1)的更多相关文章

  1. java_第一年_JavaWeb(14)

    EL :EL表达式主要用于获取数据.执行运算.获取对象.调用java方法: 获取数据 语法:"${标识符}" 会调用pageContext.findAttribute方法,从pag ...

  2. java_第一年_JavaWeb(13)

    JSTL标签库——核心标签库 为了弥补html标签的不足,为了更加方便地在jsp页面中使用java逻辑代码,JSTL标签库因运而生,而其中的佼佼者,被恩宠最多的就是核心标签库了: 核心标签库从功能上可 ...

  3. java_第一年_JavaWeb(11)

    自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...

  4. java_第一年_JavaWeb(15)

    Filter过滤器,Servlet API 中提供了一个Filter接口,用于实现用户在访问某个目标资源前对其进行拦截: 拦截原理:web服务器通过Filter接口调用doFilter方法,会传递一个 ...

  5. java_第一年_JavaWeb(12)

    SimpleTag标签 定义了五个方法:setJspContext.setJspBody.setParent和getParent以及最重要的doTag方法(完成了所有的业务逻辑): setJspCon ...

  6. java_第一年_JavaWeb(10)

    JavaWeb的两种开发模式 JSP+JavaBean框架:JavaBean负责封装数据.提供方法,JSP负责处理用户请求和显示数据:只能开发较为简单的业务: JSP+JavaBean+Servlet ...

  7. java_第一年_JavaWeb(9)

    JavaBean是一个遵循某种特定写法的Java类,有以下特点: 必需具有一个无参的构造函数 属性必需私有化 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范 范例: ...

  8. java_第一年_JavaWeb(8)

    前面说到,JSP在运行时会被编译成Servlet源代码,通过_jspServlet方法处理请求,此时该方法会传递和提供9个与web开发相关的对象进行使用,开发人员在JSP页面通过对这些变量即可引用这9 ...

  9. java_第一年_JavaWeb(7)

    JSP执行过程 客户端发出请求访问JSP文件 JSP Container将要访问的JSP文件转译为Servlet的源代码(转译时期),并将其编译成.class文件(编译时期): 执行编译后的.clas ...

  10. java_第一年_JavaWeb(6)

    会话 会话:浏览器从打开一个进程访问服务器到该浏览器关闭,我们称之为一个会话: 在浏览器和服务器交互期间,会不可避免地产生一些数据,而为了为每个用户保存其对应的数据,可使用两种技术:Cookie和Se ...

随机推荐

  1. git 和码云的上传文件代码操作

    Git与Github的连接与使用 一 安装git软件 1.git介绍 ''' git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.​ 分布式相比于集中式的最大区别在于开发 ...

  2. Express 中配置使用 art-template模板引擎

    art-template 官网 https://aui.github.io/art-template/ 安装: npm install --save art-template npm install ...

  3. 脚本_使用awk提取linux主机参数

    #!bin/bash#功能:使用awk提取Linux主机的参数信息,如内容剩余容量,根分区剩余容量,本机IP,本机能登录的用户个数,CPU负载.#作者:liusingbon#使用awk提取内存剩余容量 ...

  4. AOP技术介绍--(引言)

    软件设计因为引入面向对象思想而逐渐变得丰富起来.“一切皆为对象”的精义,使得程序世界所要处理的逻辑简化,开发者可以用一组对象以及这些对象之间的关系将软件系统形象地表示出来.而从对象的定义,进而到模块, ...

  5. prufer 序列 学习笔记

    prufer 序列是一种无根树的序列,对于一个 \(n\) 个点的树,其 prufer 序列的长度为 \(n-2\). prufer 序列和原树之间都可以唯一地相互转化. 构造 构造 prufer 序 ...

  6. Java final、static 关键字

    问:谈谈 Java 中 final.finally.finalize 的区别?   答:这道题其实没有任何意义,无非就是考察开发者有没有区分这几个关键字的含义,仅仅关联是因为长得像而已. final ...

  7. Android逆向之旅---解析编译之后的Dex文件格式

    一.前言 新的一年又开始了,大家是否还记得去年年末的时候,我们还有一件事没有做,那就是解析Android中编译之后的classes.dex文件格式,我们在去年的时候已经介绍了: 如何解析编译之后的xm ...

  8. 后端技术杂谈7:OpenStack的基石KVM

    Qemu,KVM,Virsh傻傻的分不清 本文转载自Itweet的博客 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://gi ...

  9. spring+JdbcTemplate简单使用(一)

    目录 @ 1. 环境配置 maven(项目管理) idea(编译器) jdk1.8(Java环境) MySQL5.6(MySQL数据库) 2. 创建项目 在 idea 中创建普通的 maven 项目 ...

  10. P2239螺旋矩阵

    传送 看到这数据范围,显然咱不能暴力直接模拟(二维数组开不下,而且会T掉) 我们目前有两种选择: 1.优化暴力  走这边(jyy tql%%%) 2.数学做法 我们看一下题目中的那个矩阵 我们能不能找 ...