工作网站建设中布线费用账务处理,seo网站自动推广,wordpress取消重定向,公司网站域名更改怎么做文章目录Web 的概念Web 组成用户通过浏览器请求资源的过程:HTML 超文本标记语言CSS插入样式表的方法有三种:对象#xff0c;类#xff0c;实例一个完整的 JavaScript 实现是由以下 3 个不同部分组成的#xff1a;JavaScript 用法什么是 Java Server Pages?JSP 注释JSP 的 J…
文章目录Web 的概念Web 组成用户通过浏览器请求资源的过程:HTML 超文本标记语言CSS插入样式表的方法有三种:对象类实例一个完整的 JavaScript 实现是由以下 3 个不同部分组成的JavaScript 用法什么是 Java Server Pages?JSP 注释JSP 的 Java 代码块JSP 的声明语句块JSP 的表达式块JSP 内置对象JSP 指令(directive)JSP 动作(Action)1、jspinclude动作forward 动作EL 表达式JavaBean 规范JavaBean 作用EL 内置对象URI 和 URL 之间的区别URIURLURI 和 URL 之间的区别。JSTLJSP Standard Tag LibraryServlet 生命周期是指Servlet 生命周期方法的执行流程当 Servlet 实例被创建好后被放在了哪里web.xml 中 URI 与 Servlet 的映射关系反映到 内存中是以什么形式存在呢什么是 ServletConfig?什么是 ServletContext2.1 GenericServlet2.1.2 版本 2-获取 ServletConfigWeb 的概念
Web 是 Internet 上的一种服务使用超文本技术Hyper text将 Internet 上 的资源文字、图片、声音、视频以页面的形式表示出来。 Web 是一种分布式的应用框架基于 Web 的应用典型的是 B/S 架构。
Web 组成
服务器物理方面指的是存放用户访问的信息资源的远程计算机软件方面指的是能根据用 户的请求将信息资源传递给用户的应用程序。
客户端物理设备方面指的是客户所使用的本地计算机软件方面是指能接收并显示服务器 上传递过来信息资源的应用程序。
用户通过浏览器请求资源的过程:
1用户打开 IE 浏览器FireFox、Chrome、IE、Edge 等浏览器输入需要请求的 Web 服 务器的 URL 地址。 2浏览器会根据 URL 地址找到指定的 Web 服务器并向其发出请求request。 3Web 服务器接收到请求就会做出相应的处理并生成处理结果。 4Web 服务器会把处理后生成的响应结果返回给发出请求的浏览器。 5浏览器接收到响应结果后就会对其结果进行解释最终将结果以网页的形式展示给 用户。
HTML 超文本标记语言 CSS
CSS(Cascading Style Sheets)称做样式表或称做层叠样式表。它是一种用来表现 HTML(标准 通用标记语言的一个应用)或 XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 在 HTML 页面中采用 CSS 技术可以对全站页面有共同属性的布局、字体、颜色、背景和其 他属性实现更加精确的控制。 CSS 规则由两个主要的部分构成选择器以及一条或多条声明: 选择器通常是需要改变样式的 HTML 元素。
每条声明由一个属性和一个值组成。
**属性property**是设置的样式属性style attribute。
每个属性有一个值。属性和值被冒号分开。
插入样式表的方法有三种:
外部样式表(External style sheet) 内部样式表(Internal style sheet) 内联样式(Inline style)
对象类实例
对象编程语言中的对象是一个泛指万物皆对象我们所要研究学习以及使用的都是对象 类对象的具体细分按照属性或者特性细分为一些类别 实例某一类中具体的事物
一个完整的 JavaScript 实现是由以下 3 个不同部分组成的
核心ECMAScript描述了 JS 的语法和基本对象 文档对象模型DOM处理网页内容的方法和接口 浏览器对象模型BOM与浏览器交互的方法和接口
JavaScript 用法
HTML 中的脚本必须位于
什么是 Java Server Pages?
JSP 全称 Java Server Pages是一种动态网页开发技术。它使用 JSP 标签在 HTML 网页中插入 Java 代码。标签通常以%开头以%结束。
JSP 是一种 Java servlet主要用于实现 Java web 应用程序的用户界面部分。网页开发者们通 过结合 HTML 代码、XHTML 代码、XML 元素以及嵌入 JSP 操作和命令来编写 JSP。
JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源然后动态地创建网页。
JSP 标签有多种功能比如访问数据库、记录用户选择信息、访问 JavaBeans 组件等还可 以在不同的网页中传递控制信息和共享信息。
JSP 注释
在 JSP 页面中使用注释可以将要注释的内容使用%-- --%括起来。 当然在 JSP 页面中也可以使用 HTML 的注释!-- --。 但它们的使用效果是不同的。 1HTML 注释会被 JSP 翻译引擎翻译到 Servlet 的 out.write()中而 JSP 注释则会被 JSP 翻译引擎忽略在 Servlet 中是看不到的。 2在客户端浏览器查看源码时HTML 注释是可以查看到的但 JSP 注释在客户端是查 看不到的。
JSP 的 Java 代码块
也称为 JSP 小脚本是以% %括起来的部分其中可以编写 Java 代码。 编写在 Java 代码块中的代码会被 JSP 翻译引擎将其置入到 Servlet 的_jspService()方法中 作为方法中的 Java 语句出现。所以其中存放的必须是以分号结尾的 Java 语句。 需要注意的是JSP 代码块可以放置在 JSP 页面的任意位置可以放置任意数量。
JSP 的声明语句块
在 JSP 页面中使用%! %括起来的部分称为声明语句块。声明语句块中的内容将被 JSP 引擎翻译到 Servlet 的类体中没有包含到哪个方法体中。 在 JSP 的声明语句块中就可声明实例变量、实例方法、静态方法、静态代码块等内容。 并且这些内容均可被 JSP 的 Java 代码块中代码访问。因为它们原本就是一个 Servlet 类 中的代码。
需要注意的是在 JSP 的声明语句块中是不能编写普通的 Java 语句的。否则的话这些 语句将会直接出现在 Servlet 的类体中。
声明语句块也可以定义在 JSP 页面的任意位置且可以定义任意多个。
JSP 的表达式块
在 JSP 页面中使用% %括起来的部分称为表达式块。其可在 JSP 页面 中输出变量、常量及它们组成的各种表达式的值。 注意是表达式而不是语句是没有分号的。
JSP 内置对象 这九个对象在 JSP 的 Java 代码块、表达式块中可以直接使用它们的用法与 Servlet 的 用法相同。只不过是直接使用在了 JSP 页面中了。
JSP 指令(directive)
1、page 指令 page 指令用于设置当前 JSP 页面的相关信息。一个 JSP 文件中可以包含多个 page 指令。 常用的 page 指令的属性意义及用法如下 1 pageEncoding 属性 pageEncoding 属性用于设置当前 JSP 页面所使用的字符编码格式。即用户在浏览器中通 过右击查看编码所看到的编码格式。 2 contentType 属性 contentType 属性用于设置当前 JSP 页面呈现于用户浏览器中的内容类型通常 为”text/html”类型即 html 格式的文本。若在 JSP 页面中设置如下 3import 属性 import 属性用于完成在 JSP 页面中导入指定的类。其被 JSP 引擎翻译为 Servlet 中的 import 语句。例如 4errorPage 属性 errorPage 属性用于指定当前页面运行过程中发生异常时所要跳转到的页面。 5isErrorPage 属性 若一个页面中指定了发生异常后所要跳转的页面将会出现一个问题异常信息被隐藏了。 在控制台看不到异常信息在所跳转的页面中也看不到异常信息。此时一般是希望当异常 发生后在所要跳转的页面中能够给出相应的异常信息。而异常信息是封装在异常对象 exception 中的。也就是说我们需要在所要跳转的页面中能够获取到异常对象。此时就 需要将这个所要跳转的页面指定为“错误处理页面”。 当一个页面的 page 指令中设置 isErrorPage 的值为 true 时表明当前页面为一个“错误 处理页面”。默认 isErrorPage 的值为 false。 6session 属性 session 属性用于指定当前页面中是否可以直接使用内置对象 session。默认为 true可以 使用。查看 JSP 翻译为的 Servlet可以看到 session 的创建使用的是无参方法 getSession()。 % page sessionfalse%
该方法的功能是若当前具有 session则使用当前的 session
若当前没有 session则会新建一个 session。即 session 对象肯定不为 null。 2、include 指令即包含指令用于将指定的文件包含到当前的 JSP 文件中。该指令只有 一个属性 file用于指定要包含的文件。 用法: 被 include 指定包含的文件可以是 JSP 动态页面文件也可以是 HTML 静态页面文件。
JSP 动作(Action)
JSP 动作是指使用系统定义好的标签来完成本应由 Java 代码来完成的功能。 JSP 动作的语法格式为 JSP 动作很多一共有十三个动作 jsp:include、jsp:forward、jsp:plugin、jsp:param、 jsp:useBean、jsp:getProperty、jsp:setProperty、 jsp:output 、 jsp:attribute、jsp:element、jsp:body、 jsp:params、jsp:fallback。
其中jsp:include和jsp:forward用的比较的多。
jsp:useBean、jsp:getProperty和jsp:setProperty与 JavaBean 相互结合。
常用的就两个转发动作与包含动作。
这两个动作的完成底层使用的是 RequestDispatcher 的 forward()与 include()方法实现的。
这两种请求转发方式的本质区别是标准输出流的开启时间不同。 1、forward()方式的标准输出流是在目标资源中开启的标准输出流 2、include()方式的标准输出流是在当前发出包含运作的页面中开启的。 3、forward()动作的发起页面中是无法向标准输出流中写入数据的 4、include()动作的发起页面及目标页面中均可向标准输出流中写入数据。 这两个动作都具有一个 page 属性用于指定要转向的页面。
1、jspinclude动作
jsp: include动作和 include 指令非常的像他们的作用都是引入文件到目标页面。
jsp: include语法格式如下 jsp: include pagerelative URL flushtrue /
其中 page 属性是jsp: include动作的一个必须属性他指明了需要包含文件的路径该 路径可以是相对的也可以是绝对的。
flush 属性用于指定输出缓存是否转入被导入文件中。
如果指定为 true则包含在被导入文件中如果为 false,则包含在原文件中。
注意 jsp: include动作与 include 指令还是有些不同的。
首先jspinclude动作是在页面访问时被导入而 include 指令是在 JSP 引擎编译时导入 的其次include 指令中被包含的文件会和主页面一块被编译成为一个 Servlet 类页面 jspinclude动作包含的文件是相对独立的文件在编译时会被编译两个 Servlet 文件因此jspinclude在效率上会慢些。
include 动作对包含的动态文件和静态文件的处理方式是不同的。
如果包含的是一个静态文件被包含文件的内容将直接嵌入 JSP 文件中存放 jsp:include动作的位置而且当静态文件改变时必须将 JSP 文件重新保存重新转译然后才能访 问变化了的文件。
如果包含的是一个动态文件则由 Web 服务器负责执行把执行后的结果传回包含它的 JSP 页面中若动态文件被修改则重新运行 JSP 文件时就会同步发生变化。 forward 动作
1、jsp:forward 转发必须配合 jspparam 动作指令使用 jsp:forward page/b.jsp jsp:param nameusername valueadmin/ /jsp:forward 2、jsp:param 用 于 传 递 参 数 必 须 与 其 他 支 持 参 数 的 标 签 一 起 使 用 到 达 跳 转 页 面 可 以 通 过request.getParameter(“参数名”)方式取出参数值在另一页面来获取增加的请求参数值 。
EL 表达式
ELExpression Language表达式语言是一种在 JSP 页面中获取数据的简单方式。EL 表达 式是从 JSP2.0 版本开始才引入的概念。
EL 表达式的基本语法形式很简单在 JSP 页面的任何静态部分均可通过${expression}的形 式获取到指定表达式的值。
1 从四大域中依次查找数据获取数据 EL 只能从 pageConext、request、session、ServletContext(application) 四大域属性空间中获 取数据。以下方式是无法获取到指定数据的。因为这个数据没有存放在四大域属性空间中。
2 从指定域中获取数据 从 pageContext 依次查找到 application 域空间会降低执行效率。若某属性确定存放在某 个域属性空间则可指定直接从该空间中查找。此时需要借助 EL 的四个域属性空间相关的 内置对象。
3 访问 Bean 的属性 EL 可以通过${key.属性}的方式获取到指定对象的指定属性值。其底层实际调用的 是该对象的相应属性的 get 方法。
当然也可以使用${key[‘属性’]或${key[“属性”]的方式获取。该方式不常用。
JavaBean 规范
1.JavaBean 类必须是一个公共类并将其访问属性(方法)设置为 public。
2.JavaBean 类必须有一个空的构造函数类中必须有一个不带参数的公用构造器此构造器 也应该通过调用各个特性的设置方法来设置特性的缺省值。
3.一个 JavaBean 类不应有公共实例变量类变量都为 private。
4.持有值应该通过一组存取方法getXxx 和 setXxx来访问对于每个特性应该有一个带 匹配公用 getter 和 setter 方法的专用实例变量。若是布尔值可以用 isXxx 来代替 getXxx。
5.成员变量的第二个字母最好不要大写 像 rCategory, hFilename 之类生成 getter 和 setter 会有问题。
JavaBean 作用
在 jsp 页面中包含 html 代码、css 代码、java 代码、以及业务逻辑处理代码等。javabean 的作用就是将 html 代码与 java 代码分离javabean 将 java 代码单独封装成一个处理某种业 务逻辑的类然后在 jsp 中调用该类实现降低耦合多和简化页面的作用。
javabean 是特殊的 java 类具有以下特征 (1)提供一个默认的无参构造函数。 (2)需要被序列化并且实现了 Serializable 接口。 (3)可能有一系列的 getter 或 setter 方法决定了读、写属性。 (4)用途实现一些业务逻辑或封装一些业务对象。例如字符串处理、数据库操作等。
EL 内置对象
就像 JSP 的 Java 代码块及表达式块中可以使用九个内置对象一样EL 表达式中同样也 存在有内置对象并且存在 11 个内置对象。常用的内置对象除了前面使用过的四个域属 性空间相关的内置对象外还有如下几个。
1 pageContext 该 pageContext 与 JSP 内置对象中的 pageContext 是同一个对象。通过该对象可以 获取到 request、response、session、servletContext、servletConfig 等对象。
注意这些对象在 EL 中不是内置对象。这些对象只能通过 pageContext 获取。
在 EL 中直接${pageContext.request}即可获取 request 对象。当然其底层实际调用的是pageContext.getRequest()方法。同理也可以通过类似方式获取到其它对象。
在这些获取的对象中有一个是实际工程中最常用的 ${pageContext.request.contextPath}用于获取当前项目的发布到服务器的名称。一般会用 在 JSP 页面的路径前。 在 EL 的 11 个内置对象中除了 pageContext 外其它 10 个内置对象其类型均为 java.util.Map 类型。
2 param 在 EL 中通过 ${param.参数名}可获取到请求中指定参数名的值。
3 paramValues 若提交的请求中同一参数具有多个值则可通过 ${paramValues.参数名[索引]} 获取到指定 索引号的该参数值。
4 initParam 在 EL 中通过使用 ${initParam.初始化参数名}可以获取到指定的初始化参数的值。
URI 和 URL 之间的区别
URI
1.什么是 URI URI统一资源标识符表示 Web 上每一种可用的资源如 HTML 文档,图像视频片段程 序等都是由一个 URI 进行标识的。
2.URI 的组成 通常由三部分组成 1 资源的命名机制 2存放资源的主机名 3资源自身的名称。 注以上三点是对实例的解释并不是 URI 的必要条件URI 只是一种概念怎样实现无所 谓只要它唯一标识一个资源就可以了。
URL
1.什么是 URL URL 是 URI 的一个子集统一资源定位符URL 可以用一种统一的格式来描述各种信息资源 包括文件、服务器的地址和目录等。URL 是 URI 概念的一种实现方式。
2.URL 的组成 1协议或称为服务方式 2存有该资源的主机的 IP 地址 3主机资源的具体地址比如目录和文件名等。 第一部分和第二部分用/“符号隔开 第二部分和第三部分用”/符号隔开 第一部分和第二部分是不可缺少的第三部分可以省略。
URI 和 URL 之间的区别。
URI 和 URL 都定义了资源是什么但 URL 还定义了该如何访问资源。URL 是一种具体的 URI 它是 URI 的一个子集它不仅唯一标识资源而且还提供了定位该资源的信息。URI 是一种 语义上的抽象概念可以是绝对的也可以是相对的而 URL 则必须提供足够的信息来定 位是绝对的。
通俗理解 URI身份证号 URL身份证住址姓名 只要能唯一表示资源的就是 URI在 URI 的基础上给出其资源的访问方式的就是 URL。
JSTL
Apache 已经定义好了一套标准的标签库规范称为 JSTLJSP Standard Tag Library即 JSP 标准标签库。该规范已通过 JCP 审核认定。 在 JSTL 中已经定义好了一套对于字符串进行处理的函数标签库这个函数标签库中定义 了 16 个对于字符串进行处理的函数。
JSP Standard Tag Library
即 JSP 标准标签库。JSTL 中定义了五个标签库 核心标签库主要用于完成基本的逻辑运算。
格式化标签库主要用于完成日期、数字的格式化显示。
EL 函数标签库定义了若干 EL 函数。
SQL 操作标签库完成 SQL 操作。不使用了。对于 SQL 操作已经完全由 Java 代码 完成。
XML 操作标签库完成 XML 操作。不使用了。对于 XML 操作已经完全由 Java 代 码完成
JSTL SQL 标签库提供了与关系型数据库OracleMySQLSQL Server 等等进行交互的标签。
引用 SQL 标签库的语法如下% taglib prefixsql urihttp://java.sun.com/jsp/jstl/sql % Servlet 是连接 Web 服务器与服务端 Java 程序的协议是一种通信规范。这个规范是以一 套接口的形式体现的。
Servlet 是 Servlet 接口实现类的一个实例对象是运行在服务器上的一段 Java 小程序 即 Server Applet也就是 Servlet 这个单词的来历。
Servlet 的主要功能是根据客户端提交的请求调用服务器端相关 Java 代码完成对请 求的处理与运算。
Servlet 生命周期是指
Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服务的执 行及最终 Servlet 对象被销毁的整个过程。
Servlet 的整个生命周期过程的执行均由 Web 服务器负责管理。即 Servlet 从创建到服务 到销毁的整个过程中方法的调用都是由 Web 服务器负责调用执行程序员无法控制其执行流程。
Servlet 生命周期方法的执行流程
1当请求发送到 Web 容器后Web 容器会解析请求 URL并从中分离出 Servlet 对应 的 URI。 2根据分离出的 URI通过 web.xml 中配置的 URI 与 Servlet 的映射关系找到要执 行的 Servlet即找到用于处理该请求的 Servlet。 3若该 Servlet 不存在则调用该 Servlet 的无参构造器、init()方法实例化该 Servlet 然后执行 service()方法。 4若该 Servlet 已经被创建则直接调用 service()方法。 5当 Web 容器被关闭或该应用被关闭则调用执行 destroy()方法销毁 Servlet 实 例。
当 Servlet 实例被创建好后被放在了哪里web.xml 中 URI 与 Servlet 的映射关系反映到 内存中是以什么形式存在呢
当 Servlet 实例被创建好后会将该 Servlet 实例的引用存放到一个 Map 集合中。该Map 集合的 key 为 URI而 value 则为 Servlet 实例的引用即 MapString, Servlet。当 Web 容器从用户请求中分离出 URI 后会首先到这个 Map 中查找是否存在其所对应的 value。
什么是 ServletConfig?
在 Servlet 接口的 init()方法中具有唯一的一个参数 ServletConfig。ServletConfig 是个 接口顾名思义就是 Servlet 配置即在 web.xml 中对当前 Servlet 类的配置信息。Servlet 规范将 Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。
在 Web 容器调用 init()方法时Web 容器首先会将 web.xml 中当前 Servlet 类的配置 信息封装为一个对象。这个对象的类型实现了 ServletConfig 接口Web 容器会将这个对象 传递给 init()方法中的 ServletConfig 参数。
什么是 ServletContext
ServletContext即 Servlet 上下文是个接口是 Web 应用中所有 Servlet 在 Web 容 器中的运行时环境。这个运行时环境随着 Web 应用的启动而创建随着 Web 应用的关闭 而销毁。也就是说一个 Web 应用就一个 Servlet 运行时环境即一个 Servlet 上下文 即一个 ServletContext 对象。
这个 Servlet 运行环境中都包含哪些具体的“环境”呢即 ServletContext 对象中都包 含哪些具体的信息呢
不仅包含了 web.xml 文件中的配置信息还包含了当前应用中所有 Servlet 可以共享的 数据。可以这么说ServeltContext 可以代表整个应用。所以 ServletConetxt 有另外一个名称 application。
2.1 GenericServlet
在通过实现 Servlet 接口来定义 Servlet 时存在一个很不方便的问题有太多不需要的 方法必须要实现。通常我们只关心 service()方法在 service()方法中完成业务逻辑但由于 Servlet 接口中还存在另外四个方法所以也要必须实现。
2.1.1 版本 1-方法空实现 由于 Servlet 中通常只使用 service()方法其它四个方法基本不用但也需要实现于 是能否定义一个通用的抽象类让其实现 Service 接口并以简单方式对 service()以外的 其它方法进行实现即要么是空方法体要么返回 null而将 service()方法声明为抽象方法。 这样以后再定义 Servlet 时就只需要继承自这个通用的抽象类即可无需再实现了 Service 接口了。
2.1.2 版本 2-获取 ServletConfig
上面的 GenericServlet 定义存在一个问题将来子类实现 GenericServlet 的 service()方法 后无法获取到 ServletConfig 对象当然也就无法获取到 Servlet 的初始化参数无法 获取到 ServletContext 对象及上下文参数了。所以需要修改这个类的定义。