jsp内置对象对象是web容器创建的一组对象,不使用new关键词久可以使用的内置对象。

九大内置对象包括以下:

  • out --JspWriter
  • request --ServletRequest
  • reponse --ServletResponse
  • config --ServletConfig
  • session --HttpSession
  • application --ServlerContext
  • page --HttpJspPage
  • pageContext --PageContext
  • exception --Exception

1、out对象

JspWriter类实例,是向客户端负责输出内容的。

常用方法如下:

  • println();
  • clear (),如果在flush()之后调用会抛出异常。
  • clearBuffer();
  • flush();
  • isAutoFlush();

举例子:

  1. <body>
  2. <h1>out内置对象</h1>
  3. <%
  4. out.println("<h2>静夜思</h2>");
  5. out.println("床前明月光<br>");
  6. out.println("疑是地上霜<br>");
  7. out.flush();
  8. //out.clear();//这里会抛出异常。
  9. out.clearBuffer();//这里不会抛出异常。
  10. out.println("举头望明月<br>");
  11. out.println("低头思故乡<br>");
  12. %>
  13. 缓冲区大小:<%=out.getBufferSize() %>byte<br>
  14. 缓冲区剩余大小:<%=out.getRemaining() %>byte<br>
  15. 是否自动清空缓冲区:<%=out.isAutoFlush() %><BR>
  16. </body>

2、request对象

客户端的请求被封装在request对象中,通过它可以了解客户端的请求,然后作出响应,request请求具有request请求域。

常用方法:

  • getParameter(String name)
  • getParamterValues(String name)
  • setAttribute(String name,Onject o)
  • getAttribute(string name)
  • getContetType();
  • getProtocol()
  • getServerName();

举个例子:用户注册提交数据给request.jsp,在request.jsp页面根据request对象可以获取提交过来的数据。

reg.jsp 注册jsp


  1. <body>
  2. <h1>用户注册</h1>
  3. <hr>
  4. <%
  5. int number=-1;
  6. //说明用户第一次访问页面,计数器对象还未创建
  7. if(application.getAttribute("counter")==null)
  8. {
  9. application.setAttribute("counter", 0);
  10. }
  11. number = Integer.parseInt(application.getAttribute("counter").toString());
  12. number++;
  13. application.setAttribute("counter", number);
  14. %>
  15. <!-- <form name="regForm" action="request.jsp" method="post"> -->
  16. <form name="regForm" action="response.jsp" method="post">
  17. <table>
  18. <tr>
  19. <td>用户名:</td>
  20. <td><input type="text" name="username"/></td>
  21. </tr>
  22. <tr>
  23. <td>爱好:</td>
  24. <td>
  25. <input type="checkbox" name="favorite" value="read">读书
  26. <input type="checkbox" name="favorite" value="music">音乐
  27. <input type="checkbox" name="favorite" value="movie">电影
  28. <input type="checkbox" name="favorite" value="internet">上网
  29. </td>
  30. </tr>
  31. <tr>
  32. <td colspan="2"><input type="submit" value="提交"/></td>
  33. </tr>
  34. </table>
  35. </form>
  36. <br>
  37. <br>
  38. <a href="request.jsp?username=李四">测试URL传参数</a>
  39. <br>
  40. <br>
  41. <center>
  42. 您是第<%=number %>位访问本页面的用户。
  43. </center>
  44. </body>

request.jsp

  1. <body>
  2. <h1>request内置对象</h1>
  3. <%
  4. request.setCharacterEncoding("utf-8"); //解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
  5. request.setAttribute("password", "123456");
  6. %>
  7. 用户名:<%=request.getParameter("username") %><br>
  8. 爱好 :<%
  9. if(request.getParameterValues("favorite")!=null)
  10. {
  11. String[] favorites = request.getParameterValues("favorite");
  12. for(int i=0;i<favorites.length;i++)
  13. {
  14. out.println(favorites[i]+" ");
  15. }
  16. }
  17. %> <br>
  18. 密码:<%=request.getAttribute("password") %><br>
  19. 请求体的MIME类型:<%=request.getContentType() %><br>
  20. 协议类型及版本号: <%=request.getProtocol() %><br>
  21. 服务器主机名 :<%=request.getServerName() %><br>
  22. 服务器端口号:<%=request.getServerPort() %><BR>
  23. 请求文件的长度 :<%=request.getContentLength() %><BR>
  24. 请求客户端的IP地址:<%=request.getRemoteAddr() %><BR>
  25. 请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
  26. 请求的上下文路径:<%=request.getContextPath() %><BR>
  27. </body>

3、response对象

response对象包含了响应客户端请求的有关信息,它具有页面作用域,该页面的作用域只对该页面有效。常用方法:

  • getCharacterEncoding()
  • setContentType();
  • getWriter();该方法打应输出流总是前于 out.println();
  • sendRedirect(String location)

请求重定向和请求转发:

  • 请求重定向:客户端行为:response.sendDirect();两次请求,前一次请求的请求对象不会保存,地址栏的url地址会发生改变
  • 请求转发:服务器行为,request.getResuestDispatcher().forward();一次请求,转发后请求对象会保存,地址栏url地址不会变。

4、session对象

一些基本概念:

  • session表示客户端与服务器的一次会话
  • web中session指的是用户在浏览某个网站,是进入网站到关闭浏览器这段时间
  • 它是保存在服务器的内存中,不同用户有不同的session
  • 它在第一个jsp页面被装载时自动创建,完成会话期管理。

它的的一些常用方法:

  • getCreationTime();
  • String getId();
  • setAttribute(String name,Object o);
  • getAttribute(String name);
  • String[] getValueNames();
  • int getMaxInactivieInterval();单位 秒
  • setMaxInactiveInterval();

举个例子:


  1. <body>
  2. <h1>session内置对象</h1>
  3. <hr>
  4. <%
  5. SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  6. Date d = new Date(session.getCreationTime());
  7. session.setAttribute("username", "admin");
  8. session.setAttribute("password", "123456");
  9. session.setAttribute("age", 20);
  10. //设置当前session最大生成期限单位是秒
  11. //session.setMaxInactiveInterval(10);//10秒钟
  12. %>
  13. Session创建时间:<%=sdf.format(d)%><br>
  14. Session的ID编号:<%=session.getId()%><BR>
  15. 从Session中获取用户名:<%=session.getAttribute("username") %><br>
  16. <a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>
  17. </body>

session的生命周期:

  • 创建: 当客户端第一次访问某个页面jsp或者servlet,服务器会创建一个 sessionId,每次客户端向服务器发送请求时,都会将sessionId携带过去,服务器会对sessionId进行校验。
  • 活动: 当客户端通过超链接打开新页面属于同一次会话;当浏览页面全部关闭,重新打开属于一次新的会话。
  • 销毁:调用sesson.invalidate();session过期,默认是30分钟;服务器重启;

5、application对象

  • application实现了用户数据共享,可存放全局变量。
  • application 开始于服务器的重启,终止于服务器的关闭
  • application 是ServletContext实例。

常用方法:

  • setAttribute(String ,Object);
  • getAttribute(String);
  • Enumeration getAttributeNames();
  • getServerInfo();返回Jsp 引擎名和版本号

举个例子:


  1. <body>
  2. <h1>application内置对象</h1>
  3. <%
  4. application.setAttribute("city", "北京");
  5. application.setAttribute("postcode", "10000");
  6. application.setAttribute("email", "lisi@126.com");
  7. %>
  8. 所在城市是:<%=application.getAttribute("city") %><br>
  9. application中的属性有:<%
  10. Enumeration attributes = application.getAttributeNames();
  11. while(attributes.hasMoreElements())
  12. {
  13. out.println(attributes.nextElement()+" ");
  14. }
  15. %><br>
  16. JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo() %><br>
  17. </body>

6、page对象

page对象就是指当前jsp页面本身,有点像this指针,它是java.lang.Object类的实例。常用的方法就是Object 类的方法。

  • getClass()
  • hashCode();
  • equals();
  • copy();
  • clone()
  • toString();
  • notify();
  • notifyAll();
  • wait();

7、pageContext对象

  • pageContext 提供了对jsp页面所有的对象及名字空间的访问
  • 它可以取application 某一属性,也可以取session;
  • 相当于页面所有功能的集大成者。

方法:

  • getOut()
  • geSession();
  • getPage();
  • getReuest();
  • getResponse();
  • setAttribute();
  • getAttibute();
  • getAttributeScope();
  • forward();
  • include();

8、config对象

它是在一个servlet初始化时,jsp页面用它传递信息,比如servlet初始化参数;以及服务器的有关信息。

  • ServletContext getServletContext();
  • getInitParameter(String);
  • Enumeration getInitParameterNames();

9、exception对象

即异常对象。如果一个jsp想要用此对象,就必须把isErrorPage 设为true.

  1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" isErrorPage="true" %>
  2. <%

九大内置对象,讲解完毕,感谢大家,后一篇文章会讲述除了jsp的九大内置对象其他内容。




扫码关注公众号有惊喜

(转载本站文章请注明作者和出处 方志朋的博客

当Java遇见了Html--Jsp九大内置对象篇的更多相关文章

  1. jsp九大内置对象与servlet中java对象

    jsp九大内置对象 request对象 :  getParameter(String name)获取表单提交的数据 getParamegerNames() 获取客户端提交的所有参数名 getAttri ...

  2. JSP九大内置对象的作用和用法总结?

    JSP九大内置对象的作用和用法总结? 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTT ...

  3. JSP 九大内置对象

    JSP 九大内置对象: 一 out对象主要用来向客户端输出各种数据类型内容,并且管理应用服务器上的输出缓冲区.out.print()//输出数据out.newLine()//输出一个换行符out.fl ...

  4. Jsp九大内置对象及其作用域

    本文主要介绍Jsp九大内置对象及其作用域,着重介绍几个常用的,希望对初学者有所帮助. 1 Jsp九大内置对象 2 详细介绍 2.1 request javax.servlet.http.HttpSer ...

  5. JSP九大内置对象分析

    JSP九大内置对象分为三类: 1.输入输出对象:out对象.response对象.request对象 2.通信控制对象:pageContext对象.session对象.application对象 3. ...

  6. JSP九大内置对象(转载)

    JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...

  7. JSP九大内置对象和四个作用域

    JSP九大内置对象和四个作用域 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JS ...

  8. JSP九大内置对象和四种属性范围解读

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九 ...

  9. JSP——九大内置对象和其四大作用域

    一.JSP九大内置对象: JSP根据Servlet API 规范提供了某些内置对象,开发者不用事先声明就可以使用标准的变量来访问这些对象. Request:代表的是来自客户端的请求,例如我们在FORM ...

  10. 黑马程序员【JSP九大内置对象和四个作用域】转载

    http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ------ ...

随机推荐

  1. set学习(系统的学习)

    set是STL中一种标准关联容器.它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高.set,顾名思义是“集合”的意思,在set中 ...

  2. UGUI 用脚本动态改变Button颜色组合

    public Button button; void Start() { ColorBlock cb = new ColorBlock(); cb.normalColor = Color.red; c ...

  3. mac os 和 ubuntu 上测试工具check-0.9.10的安装

    由于工作需要,要使用check 这个单元测试工具. 首先,说一说在Mac10.9上面的安装.我是直接在官网(http://check.sourceforge.net)上下载源码包. 1,解压 2,进入 ...

  4. WEB服务器、网站、域名、IP地址、DNS服务器之间的关系

    域名首先指向你的服务器,这个过程叫解析.  服务器分成好多小块,每小块叫一个空间或者一个虚拟主机.  所以当你输入你的域名以后,服务器收到你域名的访问信息,但不知道要打开这么多个小块中的那一个.所以要 ...

  5. jQuery 间歇式无缝滚动特效分享(三张图片平行滚动)

    最近项目中门户首页需要做出图片间歇式无缝滚动特效,但是在网上找资料都是不太理想,不过可以指导.最后自己写了一个demo实现了这个特效,分享出来. 1.jquery.cxscroll.js /*! * ...

  6. Fedora 安装 phpMyAdmin(可能只有自己看得懂)

    yum groupinstall "Development Tools" yum install php-mysqli php-mbstring php-mcrypt yum in ...

  7. [转] Java集合类详解

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  8. Spring-cloud学习线路

    学习本学习路线学习完,大家将会对微服务.Spring Cloud.Docker.Kubernetes有一个系统.全面的认识.通过学习,将能掌握相关的知识体系,并能够投入到项目实战中去. 本学习路线采用 ...

  9. Android打包异常

    Android在打包的时候,报错: 找不到类,或者打包之后运行找不到类,都可以在混淆文件中添加这个属性: -dontoptimize 通过测试,都可以解决. 来自为知笔记(Wiz)

  10. 初识ImageSwither

    imageswitcher继承自viewswitcher,使用ImageSwither只需要两步: 1.为ImageSwither提供一个ViewFactory,该ViewFactory生成的View ...