摘自:《轻量级Java EE企业应用实战》第三版

对于每次客户端请求而言,web服务器大致需要完成以下步骤:

1、启动单独线程

2、使用I/O流读取用户的请求参数

3、从请求数据中解析参数

4、处理用户请求

5、生成响应数据

6、使用I/O流向客户端发送请求数据

1、2、6是通用的,由web服务器完成,3、4、5存在差异,因为不同请求里包含的请求参数不一样,处理用户请求的方式也不同,所生成的响应也不同,这3步由Servlet的_jspService()方法完成。当编写JSP页面时,页面的静态内容,jsp脚本都会转换成_jspService()方法的执行代码(注:jsp中的Java声明,即<%! ...... %>是jsp转换成servlet后的成员变量和成员方法,不在_jspService()方法中),这些代码负责完成解析参数、处理请求、生成响应等业务,而web服务器则完成多线程、网络通信等底层功能。

JSP Servlet之间交换数据(个人感觉这里的servlet应该不是jsp编译后产生的那个servlet吧)

application  session  request  page

application:对于整个web应用有效,一旦jsp、servlet将数据放入session中,该数据将可以被该应用下其他所有JSP、servlet访问

session:仅对一次回话有效,一旦jsp、servlet将数据放入session中,该数据将可以被本次会话的其他所有JSP、servlet访问

request:仅对本次请求有效,一旦jsp、servlet将数据放入request中,该数据将可以被本次请求的其他JSP、servlet访问

page:仅对当前页面有效,一旦jsp、servlet将数据放入page中,该数据只可以被当前页面的JSP脚本、声明部分访问

session通常只应该存放与用户会话状态相关的信息。如果仅仅是为了两个页面交换信息,可以将该信息存放在request中,然后forward请求即可。

JSP Servlet之间交换数据的更多相关文章

  1. Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会有解决很多问题]生产者消费者模型

    http://blog.csdn.net/a352193394/article/details/39503857  Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会 ...

  2. 使用 Bundle 在 Activity 之间交换数据

    [toc] 使用 Bundle 在 Activity 之间交换数据 场景 当一个 Activity 启动另一个 Activity 时,常常会有一些数据需要传过去.因为两个 Activity 之间本来就 ...

  3. jsp和servlet之间传数据

    一.jsp与java文件传递数据可以使用Servlet类来传递,jsp将数据存入到request对象中,Servlet类获取这个request对象,并将数据取出. 示例代码如下: JSP代码: < ...

  4. 建立、配置和使用Activity——使用Bundle在Activity之间交换数据

    当一个Activity启动另一个Activity时,常常会有一些数据需要传过去——这就像Web应用从一个Servlet跳到另一个Serlvet时,Web应用习惯把需要交换的数据放入requestSco ...

  5. servlet之间传递数据的方式

    Servlet传递数据方式 基本概述 Servlet传递数据的方式有很多,这里提供五种方式: 1.静态变量 2.HttpServletResponse的sendRedirect()方法 3.HttpS ...

  6. 使用Bundle在Activity之间交换数据

    一:在main.xml文件中设置布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  7. python多进程程序之间交换数据的两种办法--Queue和Pipe

    合在一起作的测试. #!/usr/bin/env python # -*- coding: utf-8 -*- import multiprocessing import random import ...

  8. jsp与后台交换数据(安全目录外)

    function changebasin(rivername,codepollute){ $.ajax({ type: "POST", url: "${ctx}/wate ...

  9. JSP/Servlet(一)

    JSP/Servlet(一)   Web应用和web.xml文件: 一.构建Web应用: 1.在任意目录下创建一个文件夹. 2.在第1步所建的文件夹内建一个WEB-INF文件夹(注意大小写). 3.进 ...

随机推荐

  1. CSS 再学习,基础篇

    语法 h1 {color:red; font-size:14px;} 共享声明 h1,h2,h3,h4,h5,h6 { color: green; } 继承 通过 CSS 继承,子元素将继承最高级元素 ...

  2. [原][译][osgearth]样式表style中参数总结(OE官方文档翻译)

    几何Geometry 高度Altitude 挤压Extrusion 图标Icon 模型Model 渲染Render 皮肤Skin 文本Text 覆盖Coverage 提示: 在SDK中,样式表的命名空 ...

  3. DataReader 绑定DataGridView有两种方式

    第一种:借助于BindingSourcesqlDataReader Sdr=通过查询函数得到的sqlDataReader类型的数据;BindingSource Bs=new BindingSource ...

  4. 客户端链接Blog

    Word 2013链接Blog 1.设置共享->发布至博客->发布至博客 2.新建博客账户 3.添加新建账户信息 注意:URL内为Blog名,而非用户名 a) 在"Type of ...

  5. CUDA Samples: dot product(使用零拷贝内存)

    以下CUDA sample是分别用C++和CUDA实现的点积运算code,CUDA包括普通实现和采用零拷贝内存实现两种,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程C ...

  6. CentOS安装Zabbix

    rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm使用MySQL数据库 ...

  7. # 20155214 2016-2017-2 《Java程序设计》第6周学习总结

    20155214 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 1.在Java中,输入/输出串流代表对象为java.io.InputStream,java. ...

  8. 7-19 PAT Judge(25 分)

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  9. yarn import 使用package-lock.json

    yarn 1.7(目前最新的版本)支持npm 的package-lock.json 了 环境准备 安装更新yarn sudo npm install -g yarn 查看版本 yarn version ...

  10. poj1015陪审团——DP+路径记录

    题目:http://poj.org/problem?id=1015 DP的第一维是选了几个人,第二维是当前D与P的差值,而值存的是当前D与P的和: 技巧1:通过平移避免负角标,即代码中的fix: 技巧 ...