前几天学习了javaee中的jsp(Java Server Pages),即java服务器页面,其实就是在html里面写java代码。

一、概述前言

在总结九大对象之前,有必要先搞清楚几个概念:请求,回话,响应以及http。

回话:一个用户访问服务器的整个过程是一个回话的过程,这个过程包括从打开浏览器登陆网站到关闭浏览器退出网站的整个过程,每次回话包括多个请求以及响应。

请求:回话当中会包括很多请求,每次页面的跳转、数据操作的跳转等等都是一个回话,而这些请求很多时候是利用http协议来实现的。

响应:服务器对客户端请求所作出的应答所对应的对象,该对象包含所有的对应请求的对应应答消息。

http:一种传输数据的方式、协议,在网站的传输数据中非常常用,具体的协议知识课自己查看百度。

二、JSP的有九大常用对象概况:

javax.serverlet.httpServerlet.Request(一般被初始化为request):客户段请求对象,每次请求的发起都会被创建,声明周期为该次请求

javax.serverlet.httpServerlet.Response(一般被初始化为response):服务器响应对象,每次响应客户端时都会被创建,生命周期为该次响应

javax.serverlet.httpServerlet.session(一般被初始化为session):可以理解为回话对象,在用户初次登陆的时候就被创建,生命周期为整个回话过程,可用于同一用户的不同回话之间的数据共享和传递,不同请求相应共用一个session。

javax.serverlet.ServerletContext(一般被初始化为appplication):服务器启动后便产生该对象,直到服务器关闭该对象的生命周期才会结束,所以该对象可用于不同用户之间信息的传递和共享,因为不同的用户共用一个application。

javax.serverlet.jsp.jspWriter(初始化为out):输出流,将服务器对应的信息输出到页面上来,可以简写为<%=%>的赋值形式。

javax.serverlet.jsp.pageContext(初始化为pageContext):该对象代表服务器本身,通过该对象的方法可以获取到服务器的所有其他内置对象。

javax.serverlet.ServerletConfig(初始化为config):包含服务器的配置信息的对象,通过该对象的方法可以获得服务器的配置信息。

javax.serverlet.Cookie(初始化为cookie):cookie是客户端中对应某次回话的一段文档,它直接存储在硬盘中。

java.lang.Exception:serverlet的异常对象。

总的来说:一次回话中:request和response可以理解为局部变量,session可理解为全局变量;而对服务器而言,session理解为局部变量,application理解为全局变量;而pageContext可以类比java中的this关键字。

三、常用对象的总结

1、request常用用法。话不多说,直接上代码

     //常用方法一getSparameter
//该方法用于获取传递的参数
request.getParameter("传递的参数的名字");
//返回的是Object,所以很多时候需要进行强制转换

  getParameter方法用于获取传递参数的值,返回的是一个对象,值得传递可以包括表单的get和post提交数据、url传参等,在传递参数的时候,这里要注意一个编码格式问题和注意get和post方法提交数据的区别

a、编码问题;

首先,为防止出现中文乱码,所以,在接受参数的时候需要注意将接受的参数转换为utf-8格式编码,转码的方法如下:

//设置编码格式问题的方法
request.setCharacterEncoding("utf-8");

  另外,以上的方法只能解决get和post传递参数的中文乱码问题,对于URL传参的乱码问题,要进行二次编码和解码的操作,具体代码如下:

//1、首先要在传参的那个地方进行两次编码处理
String result = java.net.URLEncoder.encode("要编码的字符串","utf-8");
result = java.net.URLEncoder.encode(result,"utf-8");
//2、在接受除,进行解码操作
String result = java.net.URLDecoder.decode(request.getParameter("参数名字")),"utf-8");

 b、表单中post和get提交数据的区别

首先,get的提交方式数据会在url中显示出来,所以相对来说不安全,同时,get的提交方法所传输的数据参数大小较小;

post提交数据不会再url中显示出来,同时可提交的数据大小可达2m;但是,get提交数据的速度比post更高效更快;

平时来说,一般建议使用post方法提交数据。 

2、response的总结,话不多说,上代码

//response常用方法
//sendRedirect
response.sendRedirect(URL);//该方法用于跳转到另一个页面用,URL是页面的url,可以是相对路径

  以上方法一般用于页面的跳转时调用。 

3、session总结,还是先看代码 

//session方法的用法
session.setAttribute(String key,Object ob);//该方法是用于将某个值传递给session,可以类比Map中的put(String key,Object object)
session.getAttribute(String key);//获取session对象中对应key索引的数据,类似于Map中的get方法。

  其实session内部存储数据的方式就是利用Map容器的方式,每次将值put进容器的时候,要包括key和value,索引和值一一对应。这两个方法就实现了数据在不同的请求之间的传递。

4、application总结

其实,application用法其实是和session一样的,主要的方法还是getAttrubute和setAttribute两个方法,具体可参考session代码。

application和session的区别其实就是生命周期的不同而已。

5、out对象

ou.println(Infor);将对应的信息打印到界面。

6、pogeContext对象,该方法是指向当前服务器的指针,类比this关键字。先看以下的代码

//pageContext方法的用法
pageContext.setAttribute(String name,Value v,int scope);
//scope对应关系:PAGE_SCOPE,对应page页面的范围;REQUEST_SCOPE:对应request范围;SESSION_SCOPE对应session范围;APPLICATION_SCOPE对应application范围
pageContext.getAttribute(String name,int scope);//类似于setAttribute方法,getAttribute只是获取其中name对应的值。

  解释以下,page范围其实就当前页面的范围,页面跳转之后page范围的值是无效的。

  

  

JSP内置对象总结的更多相关文章

  1. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

  2. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

  3. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Jsp内置对象及EL表达式的使用

    一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...

  5. Java遇见HTML——JSP篇之JSP内置对象(上)

    一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...

  6. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  7. JSP内置对象详解

    jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...

  8. JSP内置对象(上)

    在JSP中为了简化页面的开发提供了一些内置的对象.这些对象不需要由JSP的编写者通过new关键字实例化,他们都由容器实现和管理,在所有的JSP页面中都可以使用内置对象. JSP中共有9大内置对象: o ...

  9. JSP内置对象(下)

    JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 excep ...

  10. jsp内置对象的方法

    JSP内置对象的方法:out:out.print();request:request对象主要用于出列客户端请求.   常用方法:    String getParameter(String name) ...

随机推荐

  1. mysql时间查看以及定时器相关操作

    1.查看事件 show events select * from mysql.event 2.查看是否开启定时器 0:off:1:on 开启定时器:set global event_scheduler ...

  2. SWT, JFace必须的jar包和有可能会用到的jar

    先附上一篇转载的, 转自CSDN, 原文地址:http://blog.csdn.net/nabber/article/details/1879511 如果阁下看到了这篇文章,估计你已经碰到了这样的困那 ...

  3. LeetCode.4 两个有序数组的中位数问题

    这道题是那种典型的有显而易见的解法, 但是想要达到较优的时间复杂度的话就不是这么好做的题目. 我来说说我自己的思考过程 : 首先最先想到的是 O(m + n) 的解法, 也就是利用归并排序的归并将两个 ...

  4. php 继承

    说多重继承之前首先说下与其相对的单一继承,单一继承指的是一个类只可以继承自一个父类,从现实生活中举例就是说一个儿子只有一个父亲.那么多重继承就好理解了,多重继承指的是一个类可以同时从多于一个父类继承行 ...

  5. python 迭代器和生成器

    1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退)2.可迭代对象:实现了迭代器协议的 ...

  6. 【Java学习笔记】Map

    Map: 一次添加一对元素,也称为双列集合. 而Collection,一次添加一个元素,称为单列集合. 常用方法: 1.添加 value  put(key,value);        返回前一个与k ...

  7. nginx 从vagant挂载目录中加载nginx.conf配置进行开机启动

    nginx从vagrant挂载目录中读取配置启动,将nginx加入开机启动项!开机启动的时候nginx会因为加载不了配置导致启动失败! 原因是开机启动nginx服务在vagrant挂载之前,导致无法正 ...

  8. Ubuntu12.04配置mod_python

    安装: sudo apt-get install libapache2-mod-python python-mysqldb 然后编辑配置文件/etc/apache2/sites-enabled/000 ...

  9. [转]关闭ORACLE数据库

    SQL> shutdown immediateORA-24324: 未初始化服务句柄ORA-24323: 不允许此值ORA-01090: 正在关闭 - 不允许连接 SQL> shutdow ...

  10. Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单

    本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes.WeiChat微信开发框架时,发现之前做的自定义菜单这块太不给力了,而各 ...