一:在本章我们将学到如下的内容

》HTTP协议原理

》服务器端Web编程原理

》Servlet与Web容器

》Java Web应用程序的组成

》Tomcat介绍

一:1.1解析HTTP协议

HTTP:超文本传输协议(HyperText Transfer Protocol)

HTTP是一种无状态的协议,意思是指在Web浏览器和Web服务器之间不需要建立持久的连接。

HTTP是遵循请求/响应(Request/Response)模型的。

HTTP处理流程:

1.1.1建立连接

在java底层代码中是这样实现的,子不过浏览器已经帮我们做了!

1.1.2 发送请求信息  一旦建立的TCP连接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将请求封装成HTTP请求,他包括请求行,请求头,空行,消息体。

1.1.3 回送响应信息

1.1.4 关闭连接

1.2 Web服务器的缺陷;

只能向客户端提供静态网页内容
增加一个辅助应用生成动态页面 

辅助的在服务器端进行注册,根据参数查找并运行。

1.3 服务器端网页编程

建动态服务器端内容的过程
–CGI技术
–微软的ASP和ASP.NET技术
–基于Java的Servlet/JSP技术
 
 
1)CGI技术

CGI即通用网关接口(Common Gateway Interface)
最大优点是它可以用Shell、Perl、C、PHP、Python等编写  
但是CGI技术也有缺陷:

每次请求就打开一个CGI进程,严重消耗服务器资源。极大地限制了一个服务器可以支持的并发 CGI用户数量 。

2)java的解决法案

Web容器;

Web容器负责管理和运行Servlet
容器对Servlet的支持包括
–通信支持
–生命周期管理
–多线程支持
–JSP支持

-处理安全性

Servlet

1:Servlet是常规的Java代码。代码中用了一些新的API,但是不涉及新的语法。

2:Servlet代码中有我们不熟悉的重要语句。Servlet不属于J2SE,它属于单独的规范。

3:Servlet对标准类(HttpServlet)进行了扩展。

4:Servlet没有main()方法。

如:

 import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}

Servlet主要任务

读取客户端发送的显式和隐式数据
生成结果
向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据) 
 
Servlet规范;
规范只定义了一个容器必须实现的标准功能
Servlet容器有很多不同的实现
–Tomcat
–Jboss
–WebLogic
–WebSphere
–Oracle9i AS 
 
    Servlet与Web容器配合处理请求和响应

1)客户端向Web服务器发起一个HTTP请求。

2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。

3)Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。

4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。

5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。

1.4 Java Web应用程序的组成

–配置文件
–静态文件和JSP
–类文件和包 
 
 

第一章 Java Web工作原理的更多相关文章

  1. 第一章 Java Web应用开发技术

    Java Web应用开发是基于JavaEE(JavaEnterprise Edition)框架的,而JavaEE是建立在Java平台上的企业级应用解决方案.JavaEES框架提供的Web开发技术主要支 ...

  2. Java Web工作原理(转载)

    知识要点: 1.HTTP协议 2.web服务器的缺陷及其解决方案 3.对Servlet的认识 4.Servlet的主要任务 5.web容器对Servlet的支持包括的内容 HTTP协议---(Hype ...

  3. Java Web工作原理

    解析HTTP协议 HTTP:超文本传输协议(HyperText Transfer Protocol) HTTP是一种无状态的协议,意思是指在Web浏览器和Web服务器之间不需要建立持久的连接. HTT ...

  4. HTTP协议和web工作原理

    本章学完之后能干什么? 要把 知识点学好,那就需要把它相关的周边知识点了解全面 HTTP协议是web学习的核心!!! 学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!! web学习直 ...

  5. C/S B/S 及WEB工作原理

     一.C/S B/S区别 (http://wenku.baidu.com/link?url=e8bxaqz_lYCXws6TlDRJEq1qsLumNTBhr3Es6eA1ZuhHhq9FZGbVgo ...

  6. web基础-web工作原理,http协议,浏览器缓存

    1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------- ...

  7. Java虚拟机工作原理

    Java虚拟机工作原理 首先我想从宏观上介绍一下Java虚拟机的工作原理.从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac ...

  8. Java HashMap工作原理及实现

    Java HashMap工作原理及实现 2016/03/20 | 分类: 基础技术 | 0 条评论 | 标签: HASHMAP 分享到:3 原文出处: Yikun 1. 概述 从本文你可以学习到: 什 ...

  9. 第一章 创建WEB项目

    第一章   创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>&g ...

随机推荐

  1. java基础知识-算术运算符和赋值运算符

    1.算术运算符 算术运算符: +,-,*,/,% /:取的是两个数的商,当两个数是整数,不整除的情况,结果不包含小数部分 %:取的是两个数的余数. 字符串和+联合使用:此时的+称为连接符.++,--都 ...

  2. DXP常用有效的快捷操作记录

    1.在PCB中快速选中一个器件 1)  M+C+Enter将弹出元件对话框,移动一个元件后,在十字架光标 状态时按[Enter]键 2)M(Move)+M(Move)按下时,鼠标光标变成“+”后,点击 ...

  3. poj 2262 Goldbach's Conjecture

    素数判定...很简单= =.....只是因为训练题有,所以顺便更~ #include<cstdio> #include<memory.h> #define maxn 50000 ...

  4. 关于synchronized和lock 的使用及其在线程间的通信

    题目要求:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次 synchronized的使用 import java.util.conc ...

  5. spring项目读取配置的demo

    背景 读取配置是基础能力,研发这个模式不错,可以从不同配置中读取数据,如下图: 可以根据不同分类的文件来管理配置,然后统一在conf中配置哪些文件 package com.jwen.platform. ...

  6. SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)

    六.各种事务隔离级别发生的影响 修改数据的用户会影响同时读取或修改相同数据的其他用户.即这些用户可以并发访问数据.如果数据存储系统没有并发控制,则用户可能会看到以下负面影响: · 未提交的依赖关系(脏 ...

  7. Python3.5 学习二十一

    本节内容概要: 上节回顾及补充知识点: 一.请求周期: URL->路由->函数或类->返回字符串或者模板 Form表单提交: 提交->url-函数或者类中的方法 -....(执 ...

  8. Linux基础命令-mkdir

    mkdir 作用:创建目录 主要参数:-p $ cd /home/test $ mkdir caianchun $ ls caianchun -p:递归参数 $ mkdir caianchun2/1/ ...

  9. Iframe高度自适应(兼容IE/Firefox、同域/跨域)

    在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...

  10. 【spring cloud】服务启动后正常,但是无法上线,一直处于down状态

    spring cloud eureka 如果出现某个应用实例 down(1), 说明 spring admin 健康检测没有通过导致 eureka 注册中心不会把这个实例从列表中删除掉. 这样所有使用 ...