我们在开发javaweb项目的时候,经常会遇到jsp和Servet之间互相传值,既然有传值,就要有对象来传,这里先说Servlet的三大域对象,request,session,application他们共同的特点都是通过键值对传值,这样也很好理解,键是唯一的,通过键可以找到值。

一、request

request汉译为请求需求,request代表的只是一次请求,当你点击一个链接,这就是依次请求,request只是一次请求有效,当你在跳转一次的时候和上一次就不是依次请求了。记住一句话,一次请求就是一个request,只对当前请求有效。

用法:用于一次请求之间的值的传递,在jsp页面设置有name属性的表单,在Servlet通过request对象获取属性值,注意request是jsp内置的九个对象之一,可以直接用

常用方法:

request.setAttribute();
request.getAttribute();
request.getParameter();

注意传值的时候总是根据键值对传值

二、session

session会话,他的作用范围只是对一次会话有效,例如打开了一个浏览器访问网址,当你再打开另一个的时候就是两次会话了,当你关闭浏览器的时候本次会话就结束了,这次会话的session也就失效了,一次会话只对应一个session

用法:有时我们要在两个Servlet之间进行传值,用session比较方便,还有就是当用户登录之后,服务器记下这个session键值对,那么本次会话用户就不用二次登录了

常用方法:

session.setAttribute();
session.getAttribute();

在用上面的方法的时候先要获取session对象,在jsp页面中session属于九大内置对象,可以直接拿来用,在Servlet中必须先要获取session对象通过

HttpSession session = request.getSession();

在jsp页面直接拿来

<%session.serAttribute("key",value)%>

session对象进行传值也是通过键值对,键的值是唯一的

三、application

这个对象的范围比较大,他是作用于整个服务端,在你启动服务器创建application对象设置值,之后在本项目中都可以获取到,一个项目中只有一个对象,传值的时候根据键的不同区分,application在服务器关闭的时候销毁,

常用方法:

 application.setAttribute("key", value);
application.getAttribute("key");

注意在Servlet中也是要获取application对象的,通过下面这句获取

 ServletContext application = request.getServletContext();

ServletContext也是属于JSP九大内置对象之一,故可以直接使用

参考:http://blog.csdn.net/qq_26676207/article/details/52592846

Servlet的三个域对象的更多相关文章

  1. Servlet全局信息共享域对象ServletContext

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512672630875619853/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...

  2. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  3. 在Action中操作域对象

    ----------------------siwuxie095 在 Action 中操作域对象 1.在 Action 中可以操作的域对象主要有三个: (1)Request (2)Session (3 ...

  4. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. jsp九个内置对象、四个域对象及Servlet的三大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...

  6. Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)

    一.Servlet简介  1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...

  7. servlet的九大内置对象和四大域对象

    隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletRes ...

  8. mzy,struts学习(三):action中获得servlet中三域一参的三种方法

    package com.mzy.servlet; import java.util.Arrays; import java.util.Map; import javax.servlet.Servlet ...

  9. java servlet的域对象

    在进行网络编程中的项目时 经常用到的域对象主要包括以下三种: 1. ServletContext  作用范围比较大 代码如下: //一个请求代码: ServletContext sc = reques ...

随机推荐

  1. Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用

    K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更 ...

  2. 项目使用EntityFramework需要做的几项工作

    1..新项目引用创建好的其他项目,比如实体类库.数据库业务.实体数据模型等需要用到的项目进行引用. 2.新项目使用NuGet获取AutoMapper和EntityFramework程序包进行安装引用, ...

  3. linux下在用户空间访问I/O端口的ioperm和iopl函数

    1.ioperm函数      功能描述:为调用进程设置I/O端口访问权能.ioperm的使用需要具有超级用户的权限,只有低端的[0-0x3ff] I/O端口可被设置,要想指定更多端口的权能,可使用i ...

  4. java中的mvc和三层结构究竟是什么关系

    一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...

  5. Java利用递归算法统计1-6的数组排列组合数

    Java利用递归算法统计1-6的数组排列组合数 1.设计源码 /** * @Title:ArrayCombination.java * @Package:com.you.data * @Descrip ...

  6. Linux显示版本信息并退出

    Linux显示版本信息并退出 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ cat --version cat (GNU coreutils) 8.21 Co ...

  7. .Net之路,感谢对我深远影响的三位前辈

    为什么要写这篇文章?为什么创立这个站点? 本人大四,学习.Net三年有余,随着近期开始转向对.Net Core的关注,我开始了解到了张善友(www.csharpkit.com).腾飞(www.jess ...

  8. HALCON不支持的设备中,获取图像

    HALCON不支持的设备中,获取图像   参考(HALCON手册): Solution_guide_II_A_image_acquisiton.pdf image_acquisition_interf ...

  9. CSS3动画以及animation事件

    1.CSS3动画以及animation事件的定义 animation :name duration timing-function delay iteration-count direction an ...

  10. Java 多线程异步处理demo

    java中实现多线程 1)继承Thread,重写里面的run方法 2)实现runnable接口通过源码发现:第一种方法说是继承Tread然后重写run方法,通过查看run方法的源码,发现run方法里面 ...