1.1.1为什么需要动态网页

  静态网页的内容是固定的,不能提供个性化和定制化的服务,因此,动态网页技术逐渐发展起来。

1.1.2什么是动态页面

  动态网页是指在服务器端运行的使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容。

  动态网页需要使用服务器端脚本语言。

  动态网页的优势是什么?

      1.交互性:即网页会根据用户的要求和选择而动态改变和显示内容。

      2.自动更新:即无须改变页面代码,便会自动生成新的页面内容,可以大大节省工作量。

      3.随机性:即当不同的时间,不同的人访问同一网址时会产生不同的页面效果。

1.1.3如何实现动态网页

  以JSP技术为核心,结合其他相关技术

1.1.4为什么学习B/S架构技术

  C/S(Client/Server, 客户端/服务器端)

  B/S(Browser/Server,浏览器/服务器)

  bs:客户端-服务器
  cs:浏览器-服务器
  2000年以前,c/s结构占据开发领域的主流,随着b/s结构的发展,c/s结构已经逐步被b/s结构取代
  数据安全性
  数据实时性
  网络应用限制:前者仅适用于局域网内部用户或宽带用户,后者几乎适用于所有的网络结构
  服务响应及时性

1.1.5什么是B/S架构

  B/S架构的Web应用程序由于不在受安装客户端的限制,访问极其简便,因此越来越多地被企业采用。

1.1.6B/S架构的工作原理

  1.浏览器接受用户的输入

  2.浏览器向服务器端发送请求

  3.数据处理

  4.发送响应

1.1.7什么是URL

  URL(Uniform Reaource Locator)统一资源定位符

1.1.8URL的组成

  1.协议:HTTP协议,即超文本传输协议

  2.服务器域名或IP:由服务器收集用户请求,经过处理再返回响应到浏览器端

  3.端口号:服务器用于内外部通信的通道

  4.路径:包含两层含义.

1.2.1Tomcat服务器

  Tomcat是一个免费的开源的Web容器

1.3JSP简介

   1.跨平台性,易维护性,易管理性等优点

1.4JSP页面组成

    由静态内容,指令,表达式,小脚本,声明,标准动作,注释等元素构成

1.4.1静态内容

  静态内容是JSP页面中的静态文本,其基本是HTML文本,与java 和JSP语法无关

1.4.2JSP指令元素

  JSP指令以“<%@”开始,以“%>”结束

  page指令

page指令用来设定JSP页面的全局属性,该配置作用于整个JSP页面。语法格式为<%@page 属性="属性值" 属性="属性值"%>。

       page指令包含13个属性,如下:
        (1)language 用来指明所使用的脚本语言类型
        (2)extends  用来指定该JSP页面生成的Servlet继承于哪个父类
        (3)import   用来指定要导入的Java包 
            默认导入的包有:
            java.lang.*;
            java.servlet.*;
            java.servlet.jsp.*;
            java.servlet.http.*;
        (4)session  用来指定该JSP页面是否可以使用session对象
        (5)buffer    指定是否使用缓冲区
        (6)autoFlush 指定缓冲区是否自动进行强制输出
        (7)isThreadSafe 指定该JSP文件是否支持多线程的使用
        (8)info      设置该JSP页面的相关信息
        (9)errorPage 指定当该JSP文件发生异常错误时,网页跳转到的能处理此异常的JSP文件
        (10)isErrorPage 指定该JSP文件是否为能处理异常的JSP文件
        (11)contentType 指定该JSP文件的MIME类型及网页编码格式
        (12)pageEncoding 指定网页的编码格式
        (13)isELIginclude指令nored  指定该JSP文件是否支持EL表达式

   include指令 

include指令用于在JSP文件中include一个包含文本或代码的文件,使用include指令包含文件,执行时,先  将文件的内容插入到include指令所在的位置,执行完被包含文件的内容后,在继续执行该JSP文件。语法格式:     <%@ include file="被包含文件的URL"%>。

    taglib指令

         taglib指令用来声明此JSP文件使用了自定义的标签,同时制定所引用的标签库并设置前缀。语法格式为:
<%@ taglib uri="taglibrary's uri" prefix="tagPrefix"%> uri属性制定标签库的存放位置,prefix制定该标     签库的前缀。如:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
1.4.3JSP脚本元素
    小脚本,表达式,声明,统称为JSP脚本元素
  小脚本:<% %>

  表达式:<%= %>

  声明: <%! %>

1.4.4JSP中的注释

  <!--  HTML注释(客户端可以看到源代码)  -->

  <%-- JSP注释(客户端看不到源代码)  --->

  <%  //使用预定格式将日期转换成字符串   %>

1.5JSP的执行过程

  1.翻译阶段

  2.编译阶段

  3.执行阶段

1.6JSP九大内置对象

内置对象特点:

1.            由JSP规范提供,不用编写者实例化。

2.            通过Web容器实现和管理

3.            所有JSP页面均可使用

4.            只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)

常用内置对象:

1.            输出输入对象:request对象、response对象、out对象

2.            通信控制对象:pageContext对象、session对象、application对象

3.            Servlet对象:page对象、config对象

4.            错误处理对象:exception对象

对象常用方法说明:

1.out对象(数据流 javax.servlet.jsp.jspWriter)

方法名

说明

print或println

输出数据

newLine

输出换行字符

flush

输出缓冲区数据

close

关闭输出流

clear

清除缓冲区中数据,但不输出到客户端

clearBuffer

清除缓冲区中数据,输出到客户端

getBufferSize

获得缓冲区大小

getRemaining

获得缓冲区中没有被占用的空间

isAutoFlush

是否为自动输出

2.request对象(请求信息 javax.servlet.http.HttpServletrequest)

方法名

说明

isUserInRole

判断认证后的用户是否属于某一成员组

getAttribute

获取指定属性的值,如该属性值不存在返回Null

getAttributeNames

获取所有属性名的集合

getCookies

获取所有Cookie对象

getCharacterEncoding

获取请求的字符编码方式

getContentLength

返回请求正文的长度,如不确定返回-1

getHeader

获取指定名字报头值

getHeaders

获取指定名字报头的所有值,一个枚举

getHeaderNames

获取所有报头的名字,一个枚举

getInputStream

返回请求输入流,获取请求中的数据

getMethod

获取客户端向服务器端传送数据的方法

getParameter

获取指定名字参数值

getParameterNames

获取所有参数的名字,一个枚举

getParameterValues

获取指定名字参数的所有值

getProtocol

获取客户端向服务器端传送数据的协议名称

getQueryString

获取以get方法向服务器传送的查询字符串

getRequestURI

获取发出请求字符串的客户端地址

getRemoteAddr

获取客户端的IP地址

getRemoteHost

获取客户端的名字

getSession

获取和请求相关的会话

getServerName

获取服务器的名字

getServerPath

获取客户端请求文件的路径

getServerPort

获取服务器的端口号

removeAttribute

删除请求中的一个属性

setAttribute

设置指定名字参数值

3.response对象(响应 javax.servlet.http.HttpServletResponse)

方法名

说明

addCookie

添加一个Cookie对象

addHeader

添加Http文件指定名字头信息

containsHeader

判断指定名字Http文件头信息是否存在

encodeURL

使用sessionid封装URL

flushBuffer

强制把当前缓冲区内容发送到客户端

getBufferSize

返回缓冲区大小

getOutputStream

返回到客户端的输出流对象

sendError

向客户端发送错误信息

sendRedirect

把响应发送到另一个位置进行处理

setContentType

设置响应的MIME类型

setHeader

设置指定名字的Http文件头信息

4.session对象(会话 javax.servlet.http.HttpSession)

方法名

说明

getAttribute

获取指定名字的属性

getAttributeNames

获取session中全部属性名字,一个枚举

getCreationTime

返回session的创建时间

getId

获取会话标识符

getLastAccessedTime

返回最后发送请求的时间

getMaxInactiveInterval

返回session对象的生存时间单位千分之一秒

invalidate

销毁session对象

isNew

每个请求是否会产生新的session对象

removeAttribute

删除指定名字的属性

setAttribute

设定指定名字的属性值

5.pageContext对象(页面上下文 javax.servlet.jsp.PageContext)

方法名

说明

forward

重定向到另一页面或Servlet组件

getAttribute

获取某范围中指定名字的属性值

findAttribute

按范围搜索指定名字的属性

removeAttribute

删除某范围中指定名字的属性

setAttribute

设定某范围中指定名字的属性值

getException

返回当前异常对象

getRequest

返回当前请求对象

getResponse

返回当前响应对象

getServletConfig

返回当前页面的ServletConfig对象

getServletContext

返回所有页面共享的ServletContext对象

getSession

返回当前页面的会话对象

6.application对象(应用程序 javax.servlet.ServletContext)

方法名

说明

getAttribute

获取应用对象中指定名字的属性值

getAttributeNames

获取应用对象中所有属性的名字,一个枚举

getInitParameter

返回应用对象中指定名字的初始参数值

getServletInfo

返回Servlet编译器中当前版本信息

setAttribute

设置应用对象中指定名字的属性值

7.config对象(Servlet的配置信息 javax.servlet.ServletConfig)

方法名

说明

getServletContext

返回所执行的Servlet的环境对象

getServletName

返回所执行的Servlet的名字

getInitParameter

返回指定名字的初始参数值

getInitParameterNames

返回该JSP中所有的初始参数名,一个枚举

8.page对象(当前JSP的实例,java.lang.object)

它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法

9.exception对象(运行时的异常,java.lang.Throwable)

被调用的错误页面的结果,只有在错误页面中才可使用,

即在页面指令中设置:<%@page isErrorPage=“true”%>

Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。

Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)

Out(Javax.servlet.jsp.JspWriter)用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。

pageContext(Javax.servlet.jsp.PageContext)描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。

Session(javax.servlet.http.HttpSession)会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。

Application(javax.servle.ServletContext)存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。

Page(Java.lang.Object)表示当前JSP页面的servlet实例

Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。

Exception(Javax.lang.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>

Jsp内置对象

功能

主要方法

out

向客户端输出数据

print() println() flush() clear() isAutoFlush() getBufferSize()   close() …………

request

向客户端请求数据

getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..

response

封装了jsp产生的响应,然后被发送到客户端以响应客户的请求

addCookie() sendRedirect() setContentType()

flushBuffer() getBufferSize() getOutputStream()

sendError() containsHeader()……………

application

config

表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet

getServletContext() getServletName() getInitParameter()   getInitParameterNames()……………

page

Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问

flush()………

pagecontext

为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问

forward() getAttribute() getException() getRequest() getResponse()   getServletConfig()

getSession() getServletContext() setAttribute()

removeAttribute() findAttribute() ……………

session

用来保存每个用户的信息,以便跟踪每个用户的操作状态

getAttribute() getId()   getAttributeNames() getCreateTime() getMaxInactiveInterval()

invalidate() isNew()

exception

反映运行的异常

getMessage()…………

《JSP数据交互总结》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. Hibernate注解(二):关联关系映射注解

    关联关系映射注解以下项目均在之前相应代码的基础上进行的修改.这些项目均需要做的是: 删除映射文件 在hibernate.cfg.xml中注册实体类 注解的重要位置在实体类中关联属性上.这里是关联 ...

  2. 附005.Kubernetes身份认证

    一 Kubernetes访问 1.1 Kubernetes交互 与Kubernetes交互通常有kubectl.客户端(Dashboard).REST API请求. 1.2 API访问流程 用户使用k ...

  3. VB程序逆向常用的函数

    本文转载!!! 原文地址:http://www.cnblogs.com/bbdxf/p/3780187.html 1) 数据类型转换: a) __vbaI2Str    将一个字符串转为8 位(1个字 ...

  4. wireshark和nmap

    原创博客,转载请注出处! 关于Wireshark和Nmap实验报告 Wireshark部分 一.捕获三次握手报并分析 如上图所示,简述三次握手流程: Step1.客户端由56780号端口向服务器443 ...

  5. 一文秒懂CPU使用率

    目录 CPU:Cores, and Hyper-Threading  超线程(Hyper-Threading ) 多核(multi-cores) CPU使用率计算 CPU使用率测试 如何计算CPU使用 ...

  6. Singleton and Prototype Bean Scope in Spring

    Scope描述的是Spring容器如何新建Bean的实例的. 1> Singleton: 一个Spring容器只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例. 2> ...

  7. PATB 1019. 数字黑洞 (20)

    一个神奇的数字. 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位正整数,如果我 ...

  8. java中方法的重载和覆盖

    java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...

  9. 安装win7和linux [ubuntu14]双系统

    想体验一把ubuntu18.10最新桌面版的快感,但是windows上面的数据又删除不得,所以百度了一下,win7和linux双系统的安装教程. 一.首先在win7上创建新的分区 https://ji ...

  10. 总结关于CPU的一些基本知识

    关于CPU和程序的执行 CPU是计算机的大脑. 程序的运行过程,实际上是程序涉及到的.未涉及到的一大堆的指令的执行过程. 当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便 ...