JSP Web第四章整理复习 JSP技术基础

P104  JSP简介

(1)基本概念:jsp技术、jsp、jsp网页组成

  JSP技术基础java servlet和整个java体系的Web服务器端开发技术。

  JSP表示它是用java写的Web服务页面程序。

  JSP网页组成:

    静态部分:如HTML,CSS标记等

    动态部分:脚本程序,JSP标记等

(2)第一次访问执行流程图

  

  当第二次执行时,若JSP页面不被修改,则只执行步骤2和3

(3)例4-1  (略)

P108  JSP注释、例4-2

  HTML注释:

<!--这是HTML注释,在客户端源代码中可见-->

  JSP注释:

<%--这是JSP注释,在客户端源代码中不可见--%>

P109  JSP声明、变量声明及其含义与使用,例4-3

  JSP声明语法:(用;结束)

<%!Java变量或方法;%>

  此时相当于全局变量或方法,作用于整个JSP页面!该变量在创建对应的Servlet(init)时被初始化,且一直有效,直到实例销毁(destory)。

P110  JSP表达式的写法,例4-4

  JSP表达式的语法:(不能用;结束)

<% = Java表达式 %>

P111  例4-6,4-7

P113  page指令使用及其常用属性的使用

(1)作用与基本语法

  作用:设置整个JSP页面的相关属性和功能

  基本语法:

<%@page 属性 1 = "属性值 1"  属性 2 = "属性值 2"%......>

(2)使用方式

  第一种:

<%@page contentType = "text/html;charset = gb231"  import = "java.util.Date"%>

  第二种:

<%@page contentType = "text/html;charset = gb231"%> 
<%@page import = "java.util.Date"%>

 (3)import

  导入Java包,多个包用,隔开

<%@page import = "java.util.*,java.lang.*"%>

 (4)contentType

  用于设置文件格式和编码方式,默认类型是text/html,默认字符编码是ISO-8859-1

<%@page contentType = "text/html;charset = gb231"%> 

 (5)pageEncoding

  指定本页面编码的字符集,默认为ISO-8859-1

<%@page pageEncoding="gbk"%> 

 (6)iserrorPage

  指定本JSP页面是否用于显示错误信息

<%@page iserrorPage = "true"%>

 (7)errorPage

  指定本JSP文件发生错误时要转向的页面

<%@page errorPage = "error.jsp"%>

 (8)errorPage、iserrorPage如何设置,代码如何实现

  errorPage="relative URL"

  iserrorPage="true|false"

  代码见例4-8

 (9)pageEncoding与contentType的区别

  pageEncoding是JSP文件本身的编码

  contentType中的charset是指服务器发送给客户端时的内容编码

 (10)page指令使用注意点

  1、page指令作用于整个JSP页面,包括<%@include%>指令调用的静态包含文件,但不包括用<jsp:include>指令指定的动态包含文件。因为静态包含实际上把2个JSP文件合并成1个servlrt,动态包含仍是2个独立的servlet文件

  2、除了import属性外,其他的属性只能用一次

  3、无论把<%@page%>放在JSP文件夹的哪个地方,作用范围都是整个JSP页面。为了可读性,一般放在JSP文件的顶部

P118  include指令

 (1)作用

  静态包含,将2个JSP文件合并成1个servlet

 (2)使用语法

<%@include file = "relative URL"%>

 (3)include使用解释

  引入文件和被引入文件是在被JSP引擎翻译成servlet的过程中进行合并,而不是先合并源文件再对合并的结果进行翻译。

 (4)例4-9

P120  forward动作指令

  作用:实现服务器端的页面跳转

  语法:

   语法1:  <jsp:forward page ="{relativeURL|<% = expression%>}"/>
   语法2(带参数跳转): <jsp:forward page ="{relativeURL|<% = expression%>}"/>
             <jsp:param name = "name" value = "{value|<% = expression%>}"/>
             </jsp:forward>

P121  include动作指令

 (1)作用、语法格式、代码

   动态包含,将2个JSP文件转换成2个独立的servlet文件

   语法1:  <jsp:include page ="{relativeURL|<% = expression%>}" flush = "true"/>

   语法2(带参数包含): <jsp:include page ="{relativeURL|<% = expression%>}" flush = "true"/>
              <jsp:param name = "name" value = "value"/>
             </jsp:include>

 (2)<jsp:include>动作指令与<%@include%>编译指令的作用与区别

  作用是相同的,在当前页面嵌入某个页面

  区别:<%@include%>编译指令实际上把2个JSP文件合并成1个servlrt,引入文件和被引入文件在被JSP引擎翻译成servlet的过程中进行合并

          <jsp:include>动作指令是将2个JSP文件转换成2个独立的servlet文件

P124  param动作指令

  例题4-12

P128  JSP内置对象作用域

(1)page、request、session、application的作用范围

  page:仅在当前1个JSP页面中有效

  request:仅对本次请求(客户每次向JSP页面提出请求,服务器即为此创建1个request对象,服务器完成此请求后,该request立即失效)

  session:1个会话(客户端同服务器相连接的期间,直到连接中断为止)

  application:整个应用程序(服务器启动是创建,服务器关闭时停止)

  作用范围:page < request < session < application      

  (2)JSP内置对象生命周期原理图

          

P130  out对象

  主要以out.println和out.print两个方法输出数据

P132  request对象(请求)

(1)作用

  客户端的请求信息封装在request对象中,通过它才能做出响应

(2)常用方法

  void setAttribute(String name,Object o)  将一个对象以指定的名字保存在request中

  Object getAttribute(String name)       返回name指定的属性值,如果不存在则返回null

  String getParameter(String name)     获取客户端传送给服务器的单个传参值

  setCharacterEncoding()          设置解析请求的字符编码类型

  Cookie[] getCookies()           以数组形式返回所有Cookie对象

  String getLocalName()          获取服务器端的主机名

  String getLocalAddr()            获取服务器端的IP地址

  String getLocalPort()             获取服务器端的端口

  String[] getParameterValues(String name)   获取指定参数的所有值,比如表单的多选框

(3)例4-16,4-17

(4)request中文参数的乱码问题

  POST方式:加入<%request.setCharacterEncoding("utf-8");%>

  GET方式:在Tomcat中config文件夹里的server.xml中增加斜体部分语句

URIEncoding = "GBK":
<Connector port = "8080"  
    protocol = "HTTP/1.1"
    connectionTimeout = "20000"
    redirectPort = "8443"
    URIEncoding = "GBK" />

P136  response对象(响应)

(1)作用

  是服务器对request对象请求的回应,负责向客户端发送数据

(2)sendRedirect 重定位方法和 jsp:forward 跳转的区别

    jsp:forward  对客户而言是同一次请求,跳转后地址栏不会改变

    sendRedirect   对客户而言是不同请求,跳转后地址栏改变

(3)void addCookie(Cookie cookie)

  添加一个Cookie对象,用来保存客户端的用户信息

(4)PrintWriter getWriter()

  获取输出流对应的writer对象

(5)setCharacterEncoding()

  指定响应的字符编码格式

(6)例4-18

P141  session

(1)关于session对象的描述

  用户保持HTTP连接状态的技术。因为HTTP本身是无状态的,影响程序间的交互。

(2)常用方法

  void setAttribute(String key,Object o)  设置session属性,将一个Object对象以key为关键字保存到session中

  Object getAttribute(String key)       返回以key为关键字的Object对象,如果不存在则返回null

  int getMaxInactiveInterval()       返回session的超时时间,单位是秒

  void setMaxInactiveInterval()       设置session的超时时间,单位是秒,负数表明永不失效

  void invalidate()            使该session立即失效

(3)session默认超时的设置

  默认超时时间是30分钟,可以通过Tomcat目录下configweb.xml中的<session-config>配置项修改

<session-config>
    <session-timeout>60</session-timeout>
</session-config>
    <!--单位:分钟-->

(4)例4-23

P144  application

  功能:存放要在多个用户中共享的数据

  例4-24

P147  pageContent对象

(1)作用

  存取其他内置对象

(2)常用方法

  ServletRequest getRequest()            回传当前页面的请求,如request

  ServletResponse getResponse()              回传当前页面的响应,如response

  ServletContext getServletContext()          回传当前页面的执行环境,如application

  HttpSession getSession()               回传和目前网页有联系的会话,如session

  Object getAttribute(String name,int scope/String name)  回传名称为name,范围为scope的属性对象

  getAttributeNameInScope(int scope)           回传所有属性范围为Scope的属性名称

(3)page对象的作用范围

  仅在当前1个JSP页面中有效

(4)例4-25

P149  Cookie对象

(1)什么是Cookie?其作用是什么?

  Cookie是一种会话跟踪机制。用来记录用户登录的用户名、密码、登录时间等信息

(2)常用方法

Cookie cookie = new Cookie("name","yg");//构造方法
cookie.setMaxAge(60*60);//设定cookie存活时间为1小时,单位:秒
response.addCookie(cookie);
request.getCookies()

(3)例4-26

原文地址:https://www.cnblogs.com/yg1024/p/8125323.html