–使用内建对象的目的 
–内建对象 
–out 内建对象 
–request 内建对象 
–response 对象 
–session 内建对象 
–pageContext 内建对象 
–application 内建对象 
–config 内建对象 
–page 内建对象 
–exception 内建对象
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
? 使用内建对象的目的 
–JSP 为了简化页面的开发提供了一些内建对象 
–这些内建对象在使用之前不需要实例化 
–它们由容器(如:Tomcat)来实现和管理 
–在所有的JSP页面中都能使用内建对象 
–所有的的内建对象只能在代码块和表达式中使用 
–不能在JSP声明中使用
? 内建对象 
–request
TestJspServlet.java
package com.michael.servlet;

import java.io.IOException;    
import java.io.PrintWriter;

import javax.servlet.ServletException;    
import javax.servlet.http.HttpServlet;    
import javax.servlet.http.HttpServletRequest;    
import javax.servlet.http.HttpServletResponse;

public class TestJspServlet extends HttpServlet {

/**    
         * Constructor of the object.    
         */    
        public TestJspServlet() {    
                super();    
        }

/**    
         * Destruction of the servlet. <br>    
         */    
        public void destroy() {    
                super.destroy(); // Just puts "destroy" string in log    
                // Put your code here    
        }

/**    
         * The doGet method of the servlet. <br>    
         *    
         * This method is called when a form has its tag value method equals to get.    
         *    
         * @param request the request send by the client to the server    
         * @param response the response send by the server to the client    
         * @throws ServletException if an error occurred    
         * @throws IOException if an error occurred    
         */    
        public void doGet(HttpServletRequest request, HttpServletResponse response)    
                        throws ServletException, IOException {

doPost(request,response);    
        }

/**    
         * The doPost method of the servlet. <br>    
         *    
         * This method is called when a form has its tag value method equals to post.    
         *    
         * @param request the request send by the client to the server    
         * @param response the response send by the server to the client    
         * @throws ServletException if an error occurred    
         * @throws IOException if an error occurred    
         */    
        public void doPost(HttpServletRequest request, HttpServletResponse response)    
                        throws ServletException, IOException {    
                request.setAttribute("name", "michael");    
                request.getRequestDispatcher("/RequestJsp.jsp").forward(request, response);    
        }

/**    
         * Initialization of the servlet. <br>    
         *    
         * @throws ServletException if an error occurs    
         */    
        public void init() throws ServletException {    
                // Put your code here    
        }

}

RequestJsp.jsp
测试request是否被封装成HttpServletRequest接口
–response 
–pageContext 
–session
TestJspServlet.java
RequestJsp.jsp
测试
下面测试request和session的作用域
RequestJsp2.jsp
看下效果:
发现session作用域针对当前页面,age为20,而request针对当前请求,请求结束就终止了,name为null。
TestJspServlet.java
RequestJsp.jsp
看下效果:
–application
看下效果:
 
测试其作用域
现在只有application有值,其他都为空哈~
–out 
–config 
–page 
–exception

? out 内建对象 
–作用 
? out 对象被封装成 javax.servlet.jsp.JspWriter接口 
? 表示为客户端打开的输出流 
? PrintWriter使用它向客户端发送输出流 
–主要方法 
? 输出各种数据类型的数据,如:out.print(boolean)、 
out.println(boolean)/out.print(int)、out.println(int)等 
? out.newLine() :输出一个换行字符 
? out.flush():输出缓冲区里的数据 
? out.close():关闭输出流 
? out.clearBuffer():清除缓冲区中的数据,并把数据输出到客户端 
? out.clear():清除缓冲区中的数据,但不把数据输出到客户端 
? out.getBufferSize():获得缓冲区大小 
? out.getRemaining():获得缓冲区中剩余大小 
? out.isAutoFlush():判断缓冲区是否自动刷新

TestOut.jsp
测试:
? request 内建对象 
– 作用 
? request 对象代表请求对象 
? 它被封装成HttpServletRequest接口 
? 具有HttpServletRequest接口的所有特征 
? 它作为jspService()方法的一个参数由容器传递给JSP页面 
– 主要方法 
? 取得请求参数的方法 
– String getParameter(String name) 取得name 的参数值 
– Enumeration getParameterNames( ) 取得所有的参数名称 
– String [] getParameterValues(String name) 取得所有name 的参数值 
– Map getParameterMap( ) 取得一个要求参数的Map 
? 取得请求标头的方法 
– String getHeader(String name) 取得name 的标头 
– Enumeration getHeaderNames() 取得所有的标头名称 
– Enumeration getHeaders(String name) 取得所有name 的标头 
– Map getParameterMap( ) 取得一个要求参数的Map 
– int getIntHeader(String name) 取得整数类型name 的标头 
– long getDateHeader(String name) 取得日期类型name 的标头 
– Cookie [] getCookies( ) 取得与请求有关的cookies 
? 其他请求的方法 
–String getContextPath( ) 取得Context 路径 
–String getMethod( ) 取得HTTP 的方法(GET、POST) 
–String getProtocol( ) 取得使用的协议 (HTTP/1.1、HTTP/1.0 ) 
–String getQueryString( ) 取得请求的参数字符串,不过,HTTP的方法必须为GET 
–String getRequestedSessionId( ) 取得用户端的Session ID 
–String getRequestURI( ) 取得请求的URL,但是不包括请求的参数字符串 
–Cookie [] getCookies( ) 取得与请求有关的cookies 
–String getRemoteAddr( ) 取得用户的IP 地址 
–String getRemoteHost( ) 取得用户的主机名称 
–int getRemotePort( ) 取得用户的主机端口 
–String getRemoteUser( ) 取得用户的名称 
–void getCharacterEncoding(String encoding) 设定编码格式,用来解决页 
面传递中文的问题
下面看下servlet和jsp是如何获取请求参数
先看下servlet哈~
MyForm.jsp
TestRequestServlet.java
测试:
下面我们通过JSP中request内建对象来获取哈~
MyForm.jsp
TestRequestJsp.jsp
测试:
下面再测试Enumeration getHeaderNames() 取得所有的标头名称
首先我们还是来看下Servlet是怎么操作的哈~
TestRequestServlet.java
测试:
再看下jsp如何操作哈~
TestRequestJsp.jsp
测试:
测试String getContextPath()取得Context路径
TestRequestJsp.jsp
测试:
测试String getQueryString( ) 取得请求的参数字符串,不过,HTTP的方法必须为GET
MyForm2.jsp
TestRequestJsp.jsp
测试:
同样我们可以动态指定,不过HTTP的方法必须为POST
MyForm2.jsp
测试
String getRemoteAddr()取得用户的IP地址
测试:
装localhost换成IP地址192.168.1.100测试下
我们换台电脑测试下
? response 对象 
– 作用 
? response 对象主要将JSP 处理数据后的结果传回到客户端 
? response 对象是实现 javax.servlet.http.HttpServletResponse 接口 
– 主要方法 
? 设定表头的方法 
– void addCookie(Cookie cookie) 新增cookie 
– void addDateHeader(String name, long date) 新增long类型的值到name标头 
– void addHeader(String name, String value) 新增String 类型的值到name 标头 
– void addIntHeader(String name, int value) 新增int 类型的值到name 标头 
– void setDateHeader(String name, long date) 指定long类型的值到name标头 
– void setHeader(String name, String value) 指定String 类型的值到name 标头 
– void setIntHeader(String name, int value) 指定int 类型的值到name 标头 
? 设定响应状态码的方法 
– void sendError(int sc) 传送状态码(status code) 
– void sendError(int sc, String msg) 传送状态码和错误信息 
– void setStatus(int sc) 设定状态码 
? 用来URL 重写(rewriting)的方法 
– String encodeRedirectURL(String url) 对使用sendRedirect( )方法的URL予以编码
void sendError(int sc) 传送状态码(status code)来动态手动设置状态码
测试:
测试void sendError(int sc, String msg) 传送状态码和错误信息
测试:
String encodeRedirectURL(String url) 对使用sendRedirect( )方法的URL予以编码
 
测试:
? session 内建对象 
– 作用 
? session 对象表示目前用户的会话(session)状况。 
?用此项机制可以轻易识别每一个用户, 然后针对每一个别用户的要求,给予正确的响应。 
? session 对象实现javax.servlet.http.HttpSession 接口 
– 主要方法 
? long getCreationTime() 取得session产生的时间,单位是毫秒,由1970 年1 月1日零时算起 
? String getId()  取得session 的ID 
? long getLastAccessedTime() 取得用户最后通过这个session送出请求的时间,单 位是毫秒,由1970 年1 月1 日零时算起 
? long getMaxInactiveInterval() 取得最大session不活动的时间,若超过这时间,session 将会失效,时间单位为秒 
? void invalidate() 取消session 对象,并将对象存放的内容完全实效 
? boolean isNew() 判断session 是否为"新"的,所谓"新"的session,表示session 
已由服务器产生,但是client 尚未使用 
? void setMaxInactiveInterval(int interval) 设定最大session不活动的时间, 若超过这时间,session 将会失效,时间单位为秒
? application 内建对象 
–作用 
? application 对象实现javax.servlet.ServletContext 接口 
? 它主要功用在于取得或更改 Servlet 的设定 
–主要方法 
? 容器相关信息的方法 
– int getMajorVersion( )  取得Container 主要的Servlet API 版本,如: 2  
–int getMinorVersion( ) 取得Container 次要的Servlet API 版本,如:4  
–String getServerInfo( ) 取得Container 的名称和版本 
?有关服务端的路径和文件的方法 
–String getMimeType(String file)  取得指定文件的MIME 类型 
–ServletContext getContext(String uripath)  取得指定Local URL 的 Application context    
–String getRealPath(String path)取得本地端path的绝对路径 
?有关日志记录的方法 
–void log(String message)  将信息写入log 文件中 
–void log(String message, Throwable throwable)  将stack trace 所产生的异常信息写入log文件中
TestApplication.jsp
测试:
? pageContext 内建对象 
– 作用 
? pageContext对象能够存取其他隐含对象。 
? 当隐含对象本身也支持属性时,pageContext对象也提供存取那些属性的方法。 
– 主要方法 
? 取得其他隐含对象的方法 
– Exception getException( ) 返回目前网页的异常,不过此网页要为error page, 例如:exception 隐含对象 
– JspWriter getOut( ) 返回目前网页的输出流,例如:out 隐含对象 
– Object getPage( ) 返回目前网页的Servlet 实体(instance),例如:page 隐含对象 
– ServletRequest getRequest( ) 返回目前网页的请求,例如:request 隐含对象 
– ServletResponse getResponse( ) 返回目前网页的响应,例如:response 隐含对象 
– ServletConfig getServletConfig( ) 返回目前此网页的ServletConfig 对象,例如:config 隐含对象 
– ServletContext getServletContext( ) 返回目前此网页的执行环境(context),例如: application隐含对象 
– HttpSession getSession( ) 返回和目前网页有联系的会话(session),例如: session 隐含对象 
? 取得属性的方法 
– Object getAttribute(String name, int scope) 返回name 属性,范围为scope 的 属性对象, 回传类型为 java.lang.Object 
– Enumeration getAttributeNamesInScope(int scope) 返回所有属性范围为scope 的属性名称,回传类型为Enumeration 
– int getAttributesScope(String name) 返回属性名称为name 的属性范围 
– void removeAttribute(String name) 移除属性名称为name 的属性对象 
– void removeAttribute(String name, int scope) 移除属性名称为name,范围为 scope 的属性对象 
– void setAttribute(String name, Object value, int scope) 指定属性对象的名称为name、值 为value、范围为scope 
– Object findAttribute(String name) 寻找在所有范围中属性名称为name 的属性对象 
? 范围常量 
– PAGE_SCOPE  存入pageContext 对象的属性范围 
– REQUEST_SCOPE  存入request 对象的属性范围 
– SESSION_SCOPE  存入session 对象的属性范围 
– APPLICATION_SCOPE   存入application 对象的属性范围
TestPageContext.jsp
测试:
? exception 内建对象 
–作用 
?当JSP 网页有错误时会产生异常,而exception 对象就 
来针对这个异常做处理 
–主要方法 
? getMessage( ) 获得错误信息 
? getLocalizedMessage( ) 获得本地错误信息 
? printStackTrace(new java.io.PrintWriter(out))  
打印堆栈信息
MyErrorPage.jsp
TestException.jsp
测试:
 
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

附件:http://down.51cto.com/data/2355606

本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/301340,如需转载请自行联系原作者

JDBC+Servlet+JSP整合开发之26.JSP内建对象相关推荐

  1. JDBC+Servlet+JSP整合开发之25.JSP动作元素

    –jsp:useBean –jsp:setProperty –jsp:getProperty –jsp:forward –jsp:include –jsp:param –实例 ?计算器 ------- ...

  2. JDBC+Servlet+JSP整合开发之22.JSP简介

    –对JSP的需求 –JSP的结构 –JSP的好处 –JSP实例 ?创建一个简单的JSP页面 ########################################### ? JSP –JSP ...

  3. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之14.Servlet请求头信息

    –典型的请求头信息 –读取HTTP请求头 –使用表格显示所有请求头信息 –理解各种请求头的含义 –区分不同的浏览器类型 ##############Michael分割线################ ...

  4. JDBC+Servlet+JSP整合开发之29-JSP表达式语言(EL)

    –EL 简介  –EL的应用场合  –EL 的基本语法  –EL中的算术运算符  –EL中的关系运算符  –EL中的逻辑运算符 ------------------------------START- ...

  5. JDBC+Servlet+JSP整合开发之30-JDBC、Servlet、JSP的MVC

    –Servlet 的优势与弊端 –JSP 的优势与弊端 –MVC 设计模式 –实例 ?使用MVC实现学生信息的添加.显示 -----------------------------START----- ...

  6. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之10.Web_工程结构

    –简介 –Web应用程序的思想 –Web应用程序的目的 –Web工程结构 –web.xml 文件 –实例 • 创建一个简单的web应用程序 • 部署到tomcat中来运行 ############## ...

  7. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之13.Form表单处理(1)

    –Form 表单简介 –创建并提交表单 –使用Servlet处理表单 • 读取单个请求参数 • 读取多个表单 • 读取所有参数名称 –实例 • 注册会员 ###############Michael分 ...

  8. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之12.Servlet基础(2)

    –提交表单的方法 • get • post –Servlet 生命周期 –使用Servlet 输出HTML页面 –获得Servlet初始化参数 –页面导航 • 请求重定向 –response.send ...

  9. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之06.JDBC PreparedStatement

    –PreparedStatement –为占位符"?"赋值 –使用PreparedStatement动态执行SQL语句 ####################Michael分割线 ...

最新文章

  1. JsonObject json字符串转换成JSonObject对象
  2. 阿里秋招面试全解析(含内推岗)
  3. 【linux】tc命令使用总结
  4. 个人的关于c++运算符重载的总结
  5. IDEA 部署项目的时候出错:Jar not loaded错误
  6. QT的QNdefRecord类的使用
  7. RabbitMQ之监控(1)
  8. “去除更多的鲜艳色彩和动态效果的搭配,精简用户使用步长,让软件更像是一件工具。(不排除以后更先进的吸引眼球的方式)“。
  9. 第七十一期:管理 | 技术Leader:选OKR还是KPI?
  10. html实现牌匾效果,4款店面牌匾设计效果图 店铺门头亚克力牌匾样式制作设计图...
  11. 2.卷1(套接字联网API)---传输层:TCP,UDP 和 SCTP
  12. 〖Python 数据库开发实战 - MySQL篇㉞〗- 综合案例 - 新闻管理系统数据库设计的基本属性
  13. HTML5+CSS——个人在线简历
  14. 推挽电源的基本工作原理、磁通不平衡问题及其解决方法
  15. 如何编写旋转时钟(源代码)
  16. 企业该如何用短信推广
  17. 荣耀magic book忘记pin,只能用pin登录,还着急用电脑里的文件
  18. iOS面试题-(三)
  19. 【Linux 常用命令】
  20. probably,possibly,may的用法区别是什么呀

热门文章

  1. 第一:Postman安装及使用(超详细)
  2. java第一章_java 第一章
  3. c++ 输出二进制_Q音直播编译优化与二进制集成方案
  4. button点击后出现的边框_代码分享:原生js实现,鼠标点击按钮时,多彩粒子散射特效。...
  5. android studio service directory path,Android Studio User目录缓存搬移到指定目录
  6. 计算机算法知识点总结,2021计算机考研知识点总结(1)
  7. linux ll以编码格式_在Linux中文件的编码及对文件进行编码转换
  8. Windows10 热点(WIFI)配置教程
  9. 使用Oracle SQL Developer 编写运行 PL/SQL 块
  10. docker容器内存和CPU使用限制