jsp脚本中的9个内置对象:
  1.application:javax.servlet.ServletContext的实例对象,该实例对象代表jsp所属的web应用本身,可用于在jsp页面或Servlet之间交换信息。由于Servlet没有application内置对象,故一般Servlet中用ServletContext sc = getServletConfig().getServletContext()来获取ServletContext实例

  2.config:javax.servlet.ServletContext的实例对象,代表该jsp的配置信息

  3.exception:java.lang.Throwable的实例,代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page的属性isErrorPage属性为true时,该对象才可以使用

  4.out:javax.servlet.jsp.JspWriter的实例,代表jsp页面的输出流,用于输出内容,形成html页面

  5.page:代表该页面本身,也就是Servlet中的this

  6.pageContext:javax.servlet.jsp.PageContext的实例,代表该jsp页面上下文,使用该对象可以访问页面中的共享数据,并可以通过该对象获取其他的内置对象

  7.request:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都被封装在该对象里

    request的作用:
    1.获取请求头,请求参数
      获取请求头:
      String getHeader(String name):获取指定请求头的值
      java.util.Enumeration<String> getHeaderNames():获取所有请求头的名称
      java.util.Enumeration<String> getHeaders(String name):获取指定请求头的多个值
      int getIntHeader(String name):获取指定请求头的值,并将该值转为整数值
      获取请求参数:
      String getParameter(String paramName):获取paramName的请求参数的值
      Map getParameterMap():获取所有的请求参数名和参数值所组成的Map对象
      Enumeration getParameterNames():获取所有请求参数名所组成的Enumeration对象
      Stringp[] getParameterValues(String name):paramName请求参数的值,当该请求参数有多个值时,该方法将返回多个值所组成的数组

    2.操作request范围的属性,比如setAttribute(key,value),getAttribute(key);

    3.执行forward或include,比如getRequestDispatcher(/path).forward(request,respone);

  8.respone:javax.servlet.http.HttpServletResponse的实例,代表服务器对客户端的响应。一本不用response直接响应客户端,而是使用out来输出字符响应。

    respone的作用:
    1.response通常用于重定向,response.sendRedirect("a.jsp");

    2.获取输出字节流,来响应非字符响应,response.getOutputStream();

    3.增加Cookie
    Cookie通常用于网站记录用户的一些信息。Cookie与session的不同之处在于:session会随浏览器的关闭而失效,但Cookie会一直存放在客户端机器上直到超出Cookie的生命期限
      增加Cookie的步骤:
        1.创建Cookie实例
        2.设置生命期限,如果不设置,Cookie将会随浏览器的关闭而消失
        3.向客户端写Cookie
 例子:增加Cookie与获取Cookie

先看增加Cookie的jsp:

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/1/4
Time: 16:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>增加Cookie示例</title>
</head>
<body>
<%
//Cookie值默认不支持中文字符,如果需要设置中文字符,则需要现将中文编码,然后再获取Cookie的时候再解码
String username = "hello";
//1.创建Cookie
Cookie cookie = new Cookie("username",username);
//2.设置生命期限 有效期为1小时
cookie.setMaxAge(3600);
//3.将Cookie写到客户顿
response.addCookie(cookie);
%> </body>
</html>

再看获取Cookie的jsp:

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/1/4
Time: 16:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>获取Cookie示例</title>
</head>
<body>
<%
//1.获取所有的Cookie
Cookie[] cookies = request.getCookies();
//遍历cookie 找到符合要求的Cookie
for(Cookie c:cookies){
if(c.getName().equals("username")){
out.println(c.getValue());
}
}
%>
</body>
</html> 

  9.session:javax.serlvet.http.HttpSession的实例,代表一次会话。当客户端浏览器与服务器建立连接时,会话开始,当客户端关闭浏览器与服务器断开连接时,会话结束。通常用来跟踪用户的会话信息,比如判断用户是否登录

购物车应用例子:

shop.jsp:

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/1/4
Time: 16:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>选择购买物品</title>
</head>
<body>
<form action="processBuy.jsp" method="post">
书籍:<input type="checkbox" name="item" value="book"/><br/>
电脑:<input type="checkbox" name="item" value="computer"/><br/>
汽车:<input type="checkbox" name="item" value="car"><br/>
<input type="submit" value="购买"/> </form> </body>
</html>

processBuy.jsp:

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/1/4
Time: 16:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>选择购买物品</title>
</head>
<body>
<%
//1.从session中取出map集合
Map<String,Integer> map = (Map<String, Integer>) session.getAttribute("itemMap");
//2.map为空就创建
if(map == null){
map = new HashMap<String,Integer>();
map.put("书籍",0);
map.put("电脑",0);
map.put("汽车",0);
}
//3.map不为空
//4.获取上一个页面的请求参数
String[] buys = request.getParameterValues("item");
for(String item:buys){
if( item.equals("book")){
map.put("书籍",map.get("书籍").intValue()+1);
}else if(item.equals("computer")){
map.put("电脑",map.get("电脑").intValue()+1);
}else if(item.equals("car")){
map.put("汽车",map.get("汽车").intValue()+1);
}
} //5.将map存进session中
session.setAttribute("itemMap",map); %> 您所购买的物品:<br/>
书籍:<%=map.get("书籍")%>本<br/>
电脑:<%=map.get("电脑")%>台<br/>
汽车:<%=map.get("汽车")%>辆<br/>
<p><a href="shop.jsp">再次购买</a></p>
</body>
</html>

  jsp的内置对象对应于Servlet中的service()方法的局部变量,但是request,response除外,因为这两个是作为service()方法的形参

jsp笔记3(内置对象)的更多相关文章

  1. jsp篇 之 Jsp中的内置对象和范围对象

    Jsp中的内置对象: 在jsp页面代码中不需要声明,直接可以使用的对象. 一共有[9个内置对象]可以直接使用. 对象类型           名字 PageContext          pageC ...

  2. JavaWeb -jsp文件和内置对象的解析

    jsp文件和内置对象的解析 对page解析 JSP九大内置对象(自带,无需new) 1 out:输出对象 2 request:请求对象,存储“客户端像服务端发送的请求信息” 3 response:响应 ...

  3. JSP中的内置对象和Struts中的Web资源的详解

    JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法: ...

  4. jsp有哪些内置对象?作用分别是什么?(至少三个)

    jsp有哪些内置对象?作用分别是什么?(至少三个) 解答: 1)request表示HttpServletRequest对象.它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, head ...

  5. JSP有哪些内置对象

    JSP有哪些内置对象? 1.page:JSP网页本身; 2.request:用户端请求,此请求会包含来自GET/POST请求的参数; 3.session:请求有关的会话; 4.application: ...

  6. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  7. JSP九个内置对象

    JSP内置对象有: 1.request对象      客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 2.r ...

  8. jsp中的内置对象(9个)、作用

    jsp内置对象 定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象 客户 ...

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

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

随机推荐

  1. tomcat启动后服务访问404

      .  解决办法: 在tomcat文件中有个work文件夹.其中,tomcat属于admin用户,work属于 admin用户 ,启动服务由admin用户启动. 但是发现work文件下的目录权限属于 ...

  2. SVN基本介绍

    SVN是一种项目合作开发的软件,参与项目的人员可以在不同的地方实现文件和目录的超时空共享. 两个重要的概念: 1.配置库(Repository) SVN的核心是配置库,储存所有的数据,配置库按照文件树 ...

  3. objective-c runtime 开发详情

    目录 概述 对象与类的实质 id与class 继承关系与isa 总结 C函数创建一个OC类 OC类与runtime NSObjectProtocol NSObject NSProxy 一.概述 Obj ...

  4. Search Engine —— Regular Expression(Spider)

    Regular Expression,即正则表达式:用来查找符合某些负责规则的字符串的需要.它真是用于描述这些规则的工具. 1. \b 是一个元字符,用来匹配一个位置,代表着单词的开头或结尾,也就是单 ...

  5. CF 1103B Game with modulo

    题目 $a, x$ 是正整数.显然有 \begin{aligned} x \ge 2x \pmod{a} \implies a \le 2x \end{aligned} 若 $x \le a$ 则 \ ...

  6. 洛谷 P2634 [国家集训队]聪聪可可 解题报告

    P2634 [国家集训队]聪聪可可 题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一 ...

  7. 异或值 xor

    题目描述 给出一个 N 个点的带权无向图,要求从 1 号点到 N 号点的一条路径,使得路径上的边 权异或值最大. 输入格式 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M ...

  8. 纯css美化复选框,单选框,滑动条(range)

    <div class="box"> <!-- 借鉴地址:http://www.cnblogs.com/xiaoxianweb/p/5465607.html --& ...

  9. 石子归并的三种打开方式——难度递增———51Node

    1021 石子归并    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价.   ...

  10. Linux & Android 多点触摸协议

    Linux & Android 多点触摸协议 Android4.0多点触摸入门 1 KERNEL 对于触摸屏的驱动我们简单的划分为两个主要的部分,一个是注册,另一个是上报. 1.1 注册 单点 ...