http协议,servert编程的基础知识

javaweb从入门到精通教程视频&PPT;&案例源码 javaweb从入门到精通教程视频&PPT;&案例源码 javaweb从入门到精通教程视频&PPT;&案例源码 javaweb从入门到精通教程视频&PPT;&案例源码 立即下载


Http协议:

                  1)http协议: 对浏览器客户端和服务器端之间数据传输的格式规范。

                  2)http请求:浏览器->服务器端

                                   格式:

                                            请求行(请求方式(GET/POST) 请求资源(URI) http协议版本(http1.1))

                                            请求头(键值对形式存在。 host、user-agent、referer)

                                            一个空行

                                            实体内容(POST提交的参数)

                                   HttpServletRequest对象:请求对象。获取请求信息。

                                   请求行:request.getMethod()   request.getRequestURI/getRequestURL()  request.getProtocol();

                                   请求头: request.getHeader("name")    request.getHeaderNames() 

                                   实体内容: request.getInputStream()

 

                                   获取参数数据:(GET或POST)

                                                     request.getParameter("name")  一个值的参数

                                                     request.getParameterValues("name"); 多个值的参数

                                                     request.getParameterNames()    所有参数

                                                    

                  3)http响应: 服务器->浏览器端

                                   格式:

                                            响应行(http协议版本 状态码 描述)

                                                     常用的状态码: 200   302  404  500

                                            响应头( location(结合302状态码完成请求重定向功能)、 refresh(定时刷新)、content-type、                                                         content-disiposition(以下载方式打开))

                                            一个空行

                                            实体内容

                                   HttpServletResponse对象:响应对象。设置响应信息。

                                            响应行: response.setStatus();

                                            响应头:response.setHeader("name","value")

                                            实体内容:

                                                             (PrintWriter)response.getWriter().writer(); 字符内容

                                                       (OutputStream)response.getOutputStream().writer();  字节内容

 

作业:  通讯录程序

                          功能:

                                            添加联系人

                                            修改联系人

                                            删除联系人

                                            查询所有联系人

                          要求:

                                   1)console控制

                                   2)数据保存在xml      

                                  

 

今天的目标:  servlet编程 

                          第一天:入门  第二天: http协议  第三天: 如何写servlet程序

 

Servlet学习的大纲:

l 1.servlet概念及相关接口简介

l 2. servet执行过程

l 3.servlet路径映射

l 4. 缺省servlet          --应用

l 5. servlet生命周期(重点)   --理解(重点)

l 6.Servlet自动加载

l 7.Servlet线程安全

l 8.servletConfig对象

l 9.Servlet相关接口详解

l 10.ServletContext对象     --知识点

1 如何开发一个Servlet

                  1.1步骤:

                                   1)编写java类,继承HttpServlet类

                                   2)重新doGet和doPost方法

                                   3)Servlet程序交给tomcat服务器运行!!

                                                     3.1servlet程序的class码拷贝到WEB-INF/classes目录

                                                     3.2在web.xml文件中进行配置

                                           

<!-- 配置一个servlet -->

  <!-- servlet的配置 -->

  <servlet>

    <!-- servlet的内部名称,自定义。尽量有意义 -->

    <servlet-name>FirstServlet</servlet-name>

    <!-- servlet的类全名:包名+简单类名 -->

    <servlet-class>gz.itcast.a_servlet.FirstServlet</servlet-class>

  </servlet>

 

 

  <!-- servlet的映射配置 -->

  <servlet-mapping>

    <!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->

    <servlet-name>FirstServlet</servlet-name>

    <!-- servlet的映射路径(访问servlet的名称) -->

    <url-pattern>/first</url-pattern>

  </servlet-mapping>

 

         问题:访问次URL:  http://localhost:8080/day10/first 

                 

前提: tomcat服务器启动时,首先加载webapps中的每个web应用的web.xml配置文件。    

                  http://:http协议

                  localhost:到本地的hosts文件中查找是否存在该域名对应的IP地址

                                                     127.0.0.1

                  8080:    找到tomcat服务器

                  /day10     在tomcat的webapps目录下找 day10的目录

                  /first    资源名称。

                                   1)在day10的web.xml中查找是否有匹配的url-pattern的内容(/first)

                                   2)如果找到匹配的url-pattern,则使用当前servlet-name的名称到web.xml文件中查询是否相同名称的servlet配置

                                   3)如果找到,则取出对应的servlet配置信息中的servlet-class内容:

                                                     字符串:gz.itcast.a_servlet.FirstServlet

 

             通过反射:

                a)构造FirstServlet的对象

                b)然后调用FirstServlet里面的方法

2 Servlet的映射路径

                         

<servlet-mapping>

    <!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->

    <servlet-name>FirstServlet</servlet-name>

    <!-- servlet的映射路径(访问servlet的名称) -->

    <url-pattern>/first</url-pattern>

  </servlet-mapping>

 

                    url-pattern                   浏览器输入

精确匹配             /first                 http://localhost:8080/day10/first

                                            /itcast/demo1          http://localhost:8080/day10/itcast/demo1

 

模糊匹配             /*                   http://localhost:8080/day10/任意路径

                                            /itcast/*               http://localhost:8080/day10/itcast/任意路径

                                            *.后缀名             http://localhost:8080/day10/任意路径.do

                                            *.do

                                            *.action

                                            *.html(伪静态)

 

注意:

                  1)url-pattern要么以 / 开头,要么以*开头。  例如, itcast是非法路径。

                  2)不能同时使用两种模糊匹配,例如 /itcast/*.do是非法路径

                  3)当有输入的URL有多个servlet同时被匹配的情况下:

                                   3.1 精确匹配优先。(长的最像优先被匹配)

                                   3.2 以后缀名结尾的模糊url-pattern优先级最低!!!

3 servlet缺省路径

                  servlet的缺省路径(<url-pattern>/</url-pattern>)是在tomcat服务器内置的一个路径。该路径对应的是一个DefaultServlet(缺省Servlet)。这个缺省的Servlet的作用是用于解析web应用的静态资源文件。

 

                  问题: URL输入http://localhost:8080/day10/index.html如何读取文件????

 

                  1)到当前day10应用下的web.xml文件查找是否有匹配的url-pattern。

                  2)如果没有匹配的url-pattern,则交给tomcat的内置的DefaultServlet处理

                  3)DefaultServlet程序到day10应用的根目录下查找是存在一个名称为index.html的静态文件。

                  4)如果找到该文件,则读取该文件内容,返回给浏览器。

                  5)如果找不到该文件,则返回404错误页面。

 

                           结论:先找动态资源,再找静态资源。

4 Sevlet的生命周期(重点)

                          4.1引入

                          Servlet的生命周期: servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁。

 

                          以前的对象: new Student(); stu.study();   stu=null;

        

                          Servlet程序的生命周期由tomcat服务器控制的!!!!

                                   

                          4.2Servlet重要的四个生命周期方法

                          构造方法:创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象                                                       只调用1次。证明servlet对象在tomcat是单实例的。

                          init方法:创建完servlet对象的时候调用。只调用1次。

                          service方法:每次发出请求时调用。调用n次。

                           destroy方法: 销毁servlet对象的时候调用。停止服务器或者重新部署web应用时销毁servlet对象。

                                                             只调用1次。

                                  

                          4.3伪代码演示servlet的生命周期

                  Tomtcat内部代码运行:

                          1)通过映射找到到servlet-class的内容,字符串:gz.itcast.a_servlet.FirstServlet

         2)通过反射构造FirstServlet对象

                2.1 得到字节码对象

                Class clazz = class.forName("gz.itcast.a_servlet.FirstServlet");

                2.2 调用无参数的构造方法来构造对象

                Object obj = clazz.newInstance();     ---1.servlet的构造方法被调用

          3)创建ServletConfig对象,通过反射调用init方法

                3.1 得到方法对象

                Method m =clazz.getDeclareMethod("init",ServletConfig.class);

                3.2 调用方法

                m.invoke(obj,config);             --2.servlet的init方法被调用

          4)创建request,response对象,通过反射调用service方法

                4.1 得到方法对象

                Methodm m=clazz.getDeclareMethod("service",HttpServletRequest.class,HttpServletResponse.class);

                4.2 调用方法

                m.invoke(obj,request,response);  --3.servlet的service方法被调用

          5)当tomcat服务器停止或web应用重新部署,通过反射调用destroy方法

                5.1 得到方法对象

                Method m =clazz.getDeclareMethod("destroy",null);

                5.2 调用方法

                m.invoke(obj,null);            --4.servlet的destroy方法被调用

            

                          4.4用时序图来演示servlet的生命周期

                 

5 Servlet的自动加载

                          默认情况下,第一次访问servlet的时候创建servlet对象。如果servlet的构造方法或init方法中执行了比较多的逻辑代码,那么导致用户第一次访问sevrlet的时候比较慢。

 

                          改变servlet创建对象的时机:提前到加载web应用的时候!!!

 

                          在servlet的配置信息中,加上一个<load-on-startup>即可!!

                 

<servlet>

    <servlet-name>LifeDemo</servlet-name>

    <servlet-class>gz.itcast.c_life.LifeDemo</servlet-class>

    <!-- 让servlet对象自动加载 -->

    <load-on-startup>1</load-on-startup>  注意:整数值越大,创建优先级越低!!

  </servlet>

 

7 有参的init方法和无参的init方法

8 Servlet的多线程并发问题

                  注意: servlet对象在tomcat服务器是单实例多线程的。

 

                  因为servlet是多线程的,所以当多个servlet的线程同时访问了servlet的共享数据,如成员变量,可能会引发线程安全问题。

 

                  解决办法:

                                   1)把使用到共享数据的代码块进行同步(使用synchronized关键字进行同步)

                                   2)建议在servlet类中尽量不要使用成员变量。如果确实要使用成员,必须同步。而且尽量缩小同步代码块的范围。(哪里使用到了成员变量,就同步哪里!!),以避免因为同步而导致并发效率降低。

 

                          Servlet学习:

                                    HttpServletRequest  请求对象:获取请求信息

                                    HttpServletResponse 响应对象:设置响应对象

                                    ServletConfig对象    servlet配置对象

                                    ServletContext对象; servlet的上下文对象

9 ServletConfig对象

                          9.1作用

                          ServletConfig对象: 主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

                          9.2对象创建和得到

                          创建时机:在创建完servlet对象之后,在调用init方法之前创建。

                          得到对象:直接从有参数的init方法中得到!!!

 

                          9.3servlet的初始化参数配置

                                  

  <servlet>

    <servlet-name>ConfigDemo</servlet-name>

    <servlet-class>gz.itcast.f_config.ConfigDemo</servlet-class>

    <!-- 初始参数:这些参数会在加载web应用的时候,封装到ServletConfig对象中 -->

    <init-param>

       <param-name>path</param-name>

       <param-value>e:/b.txt</param-value>

    </init-param>

  </servlet>

 

 

                      注意: servlet的参数只能由当前的这个sevlet获取!!!!

 

                                   ServletConfig的API:

                                            java.lang.StringgetInitParameter(java.lang.String name)  根据参数名获取参数值

                                            java.util.EnumerationgetInitParameterNames()    获取所有参数

                                      ServletContext getServletContext()    得到servlet上下文对象

                                            java.lang.StringgetServletName()       得到servlet的名称

 

10 ServletContext对象

                          10.1引入

                  ServletContext对象,叫做Servlet的上下文对象。表示一个当前的web应用环境。一个web应用中只有一                                                             个ServletContext对象。

                          10.2对象创建和得到

                          创建时机:加载web应用时创建ServletContext对象。

                          得到对象:从ServletConfig对象的getServletContext方法得到

                                           

                                   我们设计:

                                            创建ServletConfig对象

                                            publicvoid init( ServletConfig config,ServletContext context ){  多了一个参数

                                                     得到ServletConfig对象

                                                     得到ServletContext对象;

                                            }

 

                                   Sun公司设计

                                            1)创建ServletContext对象         ServletContext  context = newServletContext()             

 

                                            2)创建ServletConfig对象   ServetConfig config = new ServletConfig();

                                             config.setServletContxt(context);

                                            class  ServletConfig{

                                                              ServletContextcontext;

                                                             publicServletContext getServletContxt(){

                                                                      returncontxt;

                                                             }

                                            }

 

                                            publicvoid init( ServletConfig config ){

                                                     得到ServletConfig对象

                                                     从ServletConfig对象中得到ServletContext对象

                                                     SerlvetContextcontext = config.getServletContext();

                                            }

                                  

 

                          10.1ServletContext对象的核心API(作用)

                 

                           java.lang.StringgetContextPath()   --得到当前web应用的路径

 

                          java.lang.StringgetInitParameter(java.lang.String name)  --得到web应用的初始化参数

                          java.util.EnumerationgetInitParameterNames() 

 

                          void setAttribute(java.lang.String name,java.lang.Object object) --域对象有关的方法

                          java.lang.Object getAttribute(java.lang.Stringname) 

                          void removeAttribute(java.lang.Stringname) 

 

                          RequestDispatchergetRequestDispatcher(java.lang.String path)   --转发(类似于重定向)

 

                          java.lang.StringgetRealPath(java.lang.String path)     --得到web应用的资源文件

                          java.io.InputStream getResourceAsStream(java.lang.Stringpath) 

 

                          10.3得到web应用路径

                                   java.lang.String getContextPath()  用在请求重定向的资源名称中

                          10.4得到web应用的初始化参数(全局)

                          java.lang.String getInitParameter(java.lang.String name)  --得到web应用的初始化参数

                          java.util.Enumeration getInitParameterNames() 

 

                                   web应用参数可以让当前web应用的所有servlet获取!!!

                           10.5域对象有关的方法

                                   域对象:作用是用于保存数据,获取数据。可以在不同的动态资源之间共享数据。

 

                                            案例:  

                                            Servlet1                   Servlet2

                                  name=eric                    

                                   response.sendRedirect("/Servlet2?name=eric")            Stringrequest.getParameter("name");

                                            保存到域对象中            从域对象获取

                                            Student                 

                                   方案1: 可以通过传递参数的形式,共享数据。局限:只能传递字符串类型。

                                   方案2: 可以使用域对象共享数据,好处:可以共享任何类型的数据!!!!!

 

                                   ServletContext就是一个域对象!!!!

 

                           保存数据:void setAttribute(java.lang.String name, java.lang.Objectobject)                                           

                          获取数据: java.lang.ObjectgetAttribute(java.lang.String name)  

                          删除数据:void removeAttribute(java.lang.String name) 

 

                          ServletContext域对象:作用范围在整个web应用中有效!!!

 

                                            所有域对象:

                                                     HttpServletRequet域对象

                                                     ServletContext域对象

                                                     HttpSession 域对象

                                                     PageContext域对象     

 

                          10.6转发

                           RequestDispatchergetRequestDispatcher(java.lang.String path)

 

                           1)转发

                                    a)地址栏不会改变

                                    b)转发只能转发到当前web应用内的资源

                                   c)可以在转发过程中,可以把数据保存到request域对象中

 

                          2)重定向                       

                                   a)地址栏会改变,变成重定向到地址。

                                   b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。

                                   c)不能再重定向的过程,把数据保存到request中。

 

                          结论:如果要使用request域对象进行数据共享,只能用转发技术!!!

 

 

                          总结:

                                   Servlet编程:

                                            Servlet生命周期(重点)

                                            其他都是应用的东西(敲代码练习)

 

作业:

                                   改造通讯录程序

                                   servlet+xml版本

 

                          要求:

                                            1)使用浏览器操作系统

 

                          提示:                             

                                   添加联系人:

                                                     设计一个添加联系人html页面         

                                   保存逻辑:

                                                     AddServlet  (接收页面数据(getParameter()),使用dom4j保存到xml)

                                   修改联系人

                                                     QueryServlet(xml查询修改的联系人, 把联系人显示到一个html页面(response.getWriter.write("<html></html>")));

                                   修改保存逻辑:           

                                                     UpdateServlet( 接收页面数据,把数据保存xml )

                                   删除联系人:

                                                输入删除id的html页面

                                   删除逻辑:

                                                     DeleteServle(接收id, 在xml文件中删除对应的联系人)

                         

                                           

 

 

单细胞分析实战:当Seurat的SCTransform遇上Harmony,我的整合流程优化笔记 本文详细介绍了单细胞转录组数据分析中SCTransform与Harmony整合流程的优化策略。通过实战案例展示如何调整SCTransform参数、优化Harmony整合效果,并解决常见问题,帮助研究者获得更可靠的生物学发现。特别适合需要处理批次效应的单细胞数据分析人员。 阅读详情

相关推荐

zynq7020的arm A9核降频实录

zynq arm9 cortex a9 降频

qq_40011737的博客 8764

JavaWeb从入门到精通(三)-servlet编程

1 课程回顾 Http协议:                    1)http协议: 对浏览器客户端和服务器端之间数据传输的格式规范。                    2)http请求:浏览器->服务器端                                      格式:                                               

dragon_wtl的博客 478

华为产品安全基线

一、敏感信息安全传输 1、采用HTTPS安全协议传输 2、客户端本地保存的敏感信息,需要先加密再保存使用,不可逆支持PBKDF2(迭代10000次)加密保存,可逆支持AES256+IV保存,密钥支持可更新 二、认证鉴权 1、License中心与分析节点分布式部署,需要做用户名+口令安全认证,支持使用HTTPS安全协议。 2、客户端登录支持防暴力破解,支持验证码,多次连续尝试登陆失败后锁定账...

zileixu的博客 1万+

【http-server】http-server的安装、前端使用http-server启动本地dist文件服务:

【http-server】http-server的安装、前端使用http-server启本地dist服务:

SunPeng的博客 5862

告别地图偏移!手把手教你用MapOnline V1.2在ArcGIS里加载无偏谷歌影像和历史影像

本文详细介绍了如何使用MapOnline V1.2插件在ArcGIS中加载无偏谷歌影像和历史影像,解决GIS工程师长期面临的地图偏移问题。通过三步安装配置、无偏影像加载和时空分析功能,提升地理信息数据的精确度和工作效率,特别适用于城市规划、环境监测等场景。

weixin_29252171的博客 232

核心面试聚焦:业务问题+系统问题+设计题---字节、阿里、美团等整理统计

业务系统及其他相关面试问题整理:线上相关问题排查+高并发系统的限流+高并发秒杀系统设计+负载均衡+一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中?并且需在给定内存空间(比如:500M)内快速判断出?

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

http-server的简单使用

1. http-server 简介 http-server 是前端常使用的 http 服务器,非常实用。可以用做模拟数据,可以做静态资源服务器,也可以做调试、测试的前端服务器,可以不再依赖后端,同时也可以做代理转发等功能,解决平时开发的大部分后端需求。 http-server 是基于 node.js 的 http 服务器,它最大的好处就是可以使任意一个目录称为服务器的目录,完全抛开后台的沉重工程,直接运行想要的 js 代码。 2. http-server 使用场景 在前端比较小型的项目中,若想要运

drawlessonsfrom的博客 7336

AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理

GPFS(General Parallel File System,通用并行文件系统)是由 IBM 开发的高性能分布式文件系统,最初设计于 1990 年代,用于满足高性能计算(HPC)环境对大规模数据存储和访问的需求。GPFS 现已广泛应用于企业级存储、云计算、大数据分析、人工智能和媒体处理等领域。它以其高性能、可扩展性和可靠性著称,能够支持从小型集群到超大规模系统的各种部署场景。

Kason_iWiki 1131

Servlet与jsp详解

Servlet与jsp详解 一、Servert 概念:运行在服务器端的小程序 1.servlet就是一个接口,定义了java类被浏览器访问到的规则 2.将来我们自定义一个类,实现该接口,复写方法 快速入门 1.创建javaEE项目 2.定义一个类实现servlet接口 public class ServletDemo01 implements Servlet 3.实现接口中的抽象方法 4.配置servlet —在web.xml中配置servlet <servlet> &

m0_54349490的博客 2255

面向边缘计算的YOLOv12模型剪枝-蒸馏联合优化实战教程**

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

FJN110的博客 158

VOS中历史话单显示通话会话超时中断详解

假设一种场景:  主叫拨打被叫,主叫方异常离线,被叫方接听,被叫方发送200ok至VOS,VOS传送200ok给主叫,但是主叫方未给出正常ack回应,VOS重发几次后(根据SIP参数设定的重发机制),然后VOS服务器会中断话务,历史话单终止原因为会话超时。 参考呼叫分析信令如下图: ...

非著名运维的博客 5017

Servert的基本介绍

的我

Java2020xiaoxian的博客 1373

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Servert以及Web项目详解

今日内容: 一. Servlet 三. Request a.Servlet -- 接口(所有的web项目的类都要实现这个接口才能被Tomcat服务执行) b.GenericServlet -- 抽象类(实现了Servlet接口) c.HttpServlet -- 抽象类(继承了GenericServlet类) 1.对http协议的一种封装,简化操作 2.复写doGet/doPost方法...

SALA110的博客 1461

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在java中的servert_Java 在Client/Server 中应用

Java 在Client/Server 中应用[@more@]一、Java网络应用模型和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。但与传统的客户机/服务器(C/S) 的二层结构不同,应用Java的Web模型是由三层结构组成的。传统的C/S结构通过消息传递机制,由客户...

weixin_42508313的博客 258

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java web学习之Servert总结(一)

一、Servlet简介   Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:   1、编写一个Java类,实现servlet接口。   2、把开发好的Java类部署到web服务器中。   按照一种约定俗成的称呼习惯,通常我们也...

孤狼北望 3699

在java中的servert_Java 在Client/Server 网络中的应用

一、Java网络应用模型和Internet上的许多环境一样,完整的Java应用环境实际上也是一个客户机/服务器环境,更确切地说是浏览器/服务器模型(即Browser/Server模型,简称Web模型)。但与传统的客户机/服务器(C/S) 的二层结构不同,应用Java的Web模型是由三层结构组成的。传统的C/S结构通过消息传递机制,由客户端发出请求给服务器,服务器进行相应处理后经传递机制送回客户端。...

weixin_39907596的博客 125

在java中的servert_在Java HttpServer响应中设置内容类型

我有一个java echo httpserver了.它适用于测试站点,但我正在使用的客户端代码无法获取数据.当两者合并时,我得到一个状态代码为200的响应,但是即使它被发送,客户端也不会显示元数据/正文内容.我唯一的猜测是因为内容类型不包括在内,客户可能会对此感到挑剔.如何在响应中指定内容类型?(注意,客户端将一个字符串发送到服务器,并将POST作为参数以及一些标题信息.此代码目前设置为仅返回正文...

weixin_39863741的博客 158

servert 下载:响应头设置资源的打开方式

响应头设置 // 1.获取文件Mime类型 String mimeType = servletContext.getMimeType(realFileName); // 2.设置响应头 response.setHeader("Content-Type", mimeType); // 设置文件打开方式,filename=这里设置的是文件下载时候的名字 response.setHeader("Content-D

tangiwang的博客 213

Tomcat Server处理一个HTTP请求的过程

Tomcat Server处理一个HTTP请求的过程 1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。 2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。 3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。 4、Eng...

xie__jin__cheng的博客 399

]Servlet编程

本文对Servlet编程一些知识点进行了总结,从servlet的执行过程、生命周期、一些重要的servlet对象这几个方面展开。

sdbdfhgf的博客 318

Apache HTTP Server 与 Tomcat 的三种连接方式介绍

[b]简介:[/b]整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能、利用 Web 服务器来做负载均衡以及容错、无缝的升级应用程序。本文介绍了三种整合 Apache 和 Tomcat 的方式。 首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接。事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 80...

pengtyao的专栏 134

MockServer 服务框架设计

大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。 为解决上述问题,霍格沃兹测试学院设计并研发了 CSRMockServer 在下面的文章中简称 mock server。 mock server 相较于这些 mock 工具,具有规则更灵活、定制化更强、支持拓展多协议的特点。在本章节将会从架构设计介绍如何实现以上的特点,而在实战章节,会针对具体.

人生不怕起点低,就怕没追求 1847

Apache Http Server和Tomcat 之区别

Apache Http Server和Tomcat 之区别 http://blog.youkuaiyun.com/huangtingyu/article/details/3429789 1. Apache是web服务器,Tomcat是应用(Java)服务器,它只是一个servlet容器,是Apache的扩展。 *Http Server还有IBM Http Server,Oracl

thanklife的专栏 594

java网络编程

网络通信 1.找到对方Ip,数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序 都用数字进行标识,为了方便称呼这个数字,叫做端口,逻辑端口。定义通信规则,这个通训规则称为协议,国际组织定义了通用协议tcp/ip(应用层(HTTP)、传输层(TCP、UDP)、网际层(ip)、网络接口层) IP地址:主机名:localhost  本地回环地址127.0.0.1

LiuHang 397

java框架是用反射原理写的,,,服务器是severlet,,客户请求request

反射是代码块转成对象的过程。 class Student{ String name; punlic void study(); Student(String s){ this.name=s } } 反射:String name 转为 Filed[] 对象,study() 转为method[] 对象,构造方法转为constructor[] 对象。

weixin_44723000的博客 164

Java Servlet 中文API说明

这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。        Java Servlet API 的组成        Java Servlet API 由两个软件包组成:一个是对应HTTP的软件包这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet

远有青山 1万+
o__bug
博客等级 码龄9年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值