摘自:《轻量级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. jxl将list导入到Excel中供下载

    jxl操作excel /** * 分隔符 */ private final static String SEPARATOR = "|"; /** * 由List导出至指定的Shee ...

  2. 谈谈oracle里的join、left join、right join

    create table l as select 'left_1' as str,'1' as v from dual union allselect 'left_2' ,'2' as v from ...

  3. HQL查询语句中的模糊查询

    From Person this Where this.name like '%abc%' @SuppressWarnings("unchecked") @Override pub ...

  4. easyui combotree 异步树 前端写法js

    简要说下使用场景: combotree下拉框第一次加载时,请求一个接口,页面上展示顶层节点们(可以理解为最顶层的节点,比如所有的一级公司): 当点击其中一个节点前面的小三角展开时,再次请求服务器接口( ...

  5. 自定义控件---loadingView

    自定义加载框,效果如图: 这个loadingView可以在图片下添加文案(加载中...),还可以自定义动画效果,自定义布局文件,屏蔽用户操作,点击返回键后隐藏. 库类中包含了一个LoadingDial ...

  6. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转

    感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...

  7. Http协议——Header说明

    下图是我用IE的开发人员工具截取的一个Http Request请求的Header. 下图是我用IE的开发人员工具截取的一个Http Response的Header. header常用指令 header ...

  8. 【项目经验】macpro上安装office办公软件并破解

    链接: https://pan.baidu.com/s/1i5hyKO9 密码: 7zjf 如果本机原有office,先卸载 双击pkg文件安装office for Mac 2016 安装完不要做打开 ...

  9. graphql 文档 docker 镜像

    因为一些原因 graphql 的官方文档无法查看,后者查看不能是方便,所以在官方github 的文档基础上添加了容器构建, 方便进行查看,对于公司内部使用学习会比较好 原理 很简单,openresty ...

  10. Brackets编辑器使用

    常用快捷操作 Ctrl + b 当选中一个文本时,离该文本最近的相同的文本会被高亮显示,这样,相同的2个文本就全部获得了焦点,可以同时更改高亮文本.(对,只会找寻最近的且只找到一个就不找了!惰性查找. ...