Java web工作原理

来源:互联网 发布:恶意百度点击软件 编辑:程序博客网 时间:2024/06/05 19:13
##Java web工作原理
###html:
        全称为超文本标记语言,是通过标记和自标记来描述网页内容,超文本的含义为在网页中
     描述的不只是文本数据。还可以通过一系列标记去链接各式各样的资源。包括图片,音频,css,
     js等,当客户端在访问网页时,除了要下载文本数据,还需要通过网页中描述的链接地址,去
     下载各式各样的资源文件。才能让网页正确显示
###请求
     请求的是文件:url:3.jpg
     GET方式请求业务组件:url:land  表单数据:paramMap
     POST:方式请求业务件:url:land  表单数据:paramMap

###工厂模式
    将对象的创建和对象的使用分开进行。其目的是解耦
###解析HTTP协议
    1. HTTP超文本传输协议
    2. HTTP遵循请求/响应模式
    3. HTTP协议是一种无状态的协议
    4. HTTP协议·的端口为80
HTTP协议是一种无状态的协议,当客户端和服务器之间完成了数据交互之后,连接会断开,以释放服务器的内存资源,这样服务器就无法保存客户端的状态。会认为每次请求的用户都是新用户。
###HTTP处理流程
    1. 客户端和web服务器建立连接
    2. 生成HTTP响应回发
    3. 客户端发送HTTP请求
    4. 关闭连接
###HTTP的请求信息四部分
    1. 请求行:描述请求方式,请求的URL,HTTP协议的版本
    2. 请求头:以键值对方式描述客户端的状态
    3. 空行:标识请求头的结束和消息体的开始
    4. 消息体(只针对POST):描述客户端发送给服务器的表单数据

###MIME类型:用于描述客户端和服务器之间互交内容类型,客户端可以根据MIME类型,决定以什么应用程序来打开和执行
    1. text/html:网页格式数据
    2. image/jpeg/:图片格式数据
    3. text/xml:xml格式数据
###HTTP响应信息为四部分:
    1. 状态行:描述HTTP协议版本,状态码,状态描述
    2. 响应头:以键值对方式描述服务器相关的状态
    3. 空行:表示响应头 的借宿和消息体开始
    4. 消息体:描述服务器发送给客户端的内容
###传统的web服务器产生响应是,只能产生静态的html信息,极大影响响应信息的灵活性,解决方案是,在web服务器之后加上辅助应用,辅助可以将请求信息处理后,以数据库为介质保存处理结果,然后动态产生响应信息。
###CGI称为通用网关接口,它是辅助应用的一种解决方案。可以用多种语言编写,当客户端向服务器发送请求后,会开启外部程序来处理该请求。由于每个外部程序是进程,每次开启都会占用独立内存空间,所以,会极大的消费服务器的内存资源,也不能接受太多的请求
###web容器
     java是利用web容器+servlet方式实现辅助应用。由web容器做一些底层操作。比如,流的解析,线程的控制,数据的封装等,同时,预留servlet接口,交给开发者书写业务逻辑,这样开发者就可以将主要精力放在业务实现上,而不是为底层操作编写代码。同时。web容器利用多线程解决多任务。可以同时接受更多的请求

   1. 通信支持(将请求信息和响应信息封装成请求对象和响应对象)
   2. servlet生命周期管理(产生servlet和销毁servlet,并调用servlet相关的方法)
   3. 多线程支持(线程创建,线程启动,线程运行。线程同步)
   4. JSP支持(jsp引擎编写)
   5. 处理安全性

###
    WEB-INF目录中的内容是不能被客户端直接访问的,存放的一些比较隐秘信息
   1. WEB-INF:---classes 开发者书写业务类编译生成的class文件

             ------lib 用于存放web应用程序中所使用的jar文件
              -----web.xml 用于web组件的注册
   2. *.html
   3. *.jpg
   4. *.css
   5. *.js

###tomcat的目录结构
     1. bin:用于存放tomcat中的可执行文件,其中startup.bat用于启动tomcat。shutdown.bat用于关闭tomcat
     2. conf:存放tomcat的配置文件。其中server.xml用于tomcat服务器相关的配置,web.xml用于tomcat中web应用相关的配置
     3. server.xml:
      <Connector port="8080" protocol="HTTP/1.1"......
      描述tomcat启动端口
      <Host name="localhost"  appBase="webapps"  unpackWARs="true"
         appBase描述tomcat中存放web应用程序的目录
       unpackWARS当web应用程序目录中有war文件,则自动解压
     lib:用于存放tomcat运行时所使用的jar包,其中servlet-api.jar是tomcat根据servlet规范提供的实现类,所生成的jar文件
     logs:用于存放日志文件
     temp:用于存放临时文件
     webapps:用于存放和部署web应用程序的目录
     work:用于jsp支持
###web服务器、web容器和web应用服务器的区别
    web服务器主要作用用于开启服务器。监听端口,接收请求、产生响应,只是只能产生静态html响应信息。极大影响响应信息灵活性
    web容器是辅助应用的一种解决方案。允许将请求信息处理完成后,动态产生响应信息
    web服务器+web容器,合称web应用服务器
###servlet的API结构
    servletConfig                        servlet
     配置接口                             业务接口
                                        service业务方法

                 GenericServlet适配器类,实现了两个接口中大部分方法
                 但没有实现service方法,该方法由GenericServlet的子类根据自身协议特点实现


                HttpServlet  专门针对http协议书写的子类
                             HttpServlet重写了service(),根据请求方式的不同分别调用doXX()   
0 0
原创粉丝点击