前几天学习了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. IE浏览器打开f12才正常

    IE浏览器打开f12才正常,最后发现是js中有向控制台打log的语句,程序执行到这些语句就不走了,去掉这些语句就好了!

  2. SQL中的循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

  3. php包含(include/require)文件时的作用域

    当一个php脚本被require/include时,他的变量作用域根据其上下文环境决定. 1.如果是在一个函数中require/include一个文件,则此文件中的变量作用域是这个函数的范围.也就是说 ...

  4. Nginx虚拟目录支持PHP配置

    感谢作者:http://blog.csdn.net/fangaoxin/article/details/7030139 location ~ ^/test/.+\.php$ { alias /var/ ...

  5. <雨季>

    忘不了节后漫长的雨季,灰暗阴冷的天气,潮湿的心情,总让我怀念家乡刺眼的阳光,即使在寒冷的冬季,唯有那窗外的紫荆花独自开放.飘落满地,给灰色的世界增添点色彩,合着同学们上早课的笑声,暂时排遣那一份思乡情 ...

  6. StringGrid 实例2:1、获取 StringGrid 的行数、列数; 2、给单元赋值.

    实例2: 本例功能: 1.获取 StringGrid 的行数.列数; 2.给单元赋值. 运行效果图:

  7. 今天开始着手原来Office系统的重构

    原来系统架构Spring+Hibernate+Struts+springsecurity 拟改成 Spring+SpringMVC+MyBatis/JDBC+Shiro 同时优化前端的CSS和JQue ...

  8. Win7启动修复(Ubuntu删除后进入grub rescue的情况)

    起因:装了win7,然后在另一个分区里装了Ubuntu.后来格掉了Ubuntu所在的分区.系统启动后出现命令窗口:grub rescue:_ 正确的解决方式: 1.光驱插入win7安装盘或者用USB启 ...

  9. Web大文件上传控件-asp.net-bug修复-Xproer.HttpUploader6.2

    版权所有 2009-2016荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  10. 准备找工作第三天——java基础_由有道云笔记倒入

    循环:跳出多重循环:通过设置标号: 1    ok: 2    for(int i=0;i<10;i++) 3    { 4    for(int j=0;j<10;j++) 5    { ...