抓取jsp网页源代码(2.java注释/*多行注释:可见范围jsp源码可见运行原理 )

优采云 发布时间: 2022-02-14 14:07

  抓取jsp网页源代码(2.java注释/*多行注释:可见范围jsp源码可见运行原理

)

  JSP 概念

  JSP的全称是Java Server Pages,中文名称是java server page。它基本上是一个简化的 Servlet 设计。它将Java程序段和JSP标签插入到网页的传统HTML文件中,形成JSP文件。后缀是(*.jsp)。使用 JSP 开发的 Web 应用程序是跨平台的,可以在 Linux 和其他操作系统上运行。

  与 Servlet 一样,JSP 在服务器端执行。通常返回给客户端的是HTML文本,所以客户端只要有浏览器就可以浏览。

  JSP 脚本

  1.

  内部java代码被翻译成服务方法的内部

  2.

  会在service方法里面翻译成out.print()

  3.

  会被翻译成servlet成员的内容

  JSP 注释

  不同注解可见范围不同

  1. html 评论:

  可见范围jsp源码,翻译后的servlet,页面展示html源码

  2. java 注释://单行注释/*多行注释*/

  可见范围jsp源码,翻译后的servlet

  3. jsp 注释:

  可见范围jsp源码可见

  JSP运行原理-----jsp本质上是一个servlet

  JSP 的工作模式是请求/响应模式。客户端首先发送一个HTTP请求,JSP程序接收请求并返回处理结果。当第一次请求一个 JSP 文件时,JSP 引擎(容器)将 JSP 文件转换成一个 Servlet,它本身也是一个 Servlet

  

  JSP操作流程如下:

  1)客户端发送访问JSP文件的请求

  2)JSP 容器首先将JSP 文件转换为java 源文件(Java Servlet 源程序)。在转换过程中,如果发现JSP文件中有语法错误,转换过程将被中断,服务器和客户端返回错误信息。

  3)如果转换成功,JSP会生成Java源文件,编译成相关字节码文件*.class。类文件是一个 servlet,servlet 容器像处理任何其他 servlet 一样处理它。

  JSP编译后的两个文件:

  

  PS:翻译后的servlet可以在Tomcat的工作目录中找到

  JSP 指令

  jsp的指令是指导jsp的翻译和操作的命令。jsp包括三个主要指令:

  1. 页面指令(实际开发中默认的页面指令)

  属性最多的一条指令,根据不同的属性,引导整个页面的特点

  格式:

  常见属性如下:

  language:jsp脚本中可以嵌入的语言种类

  pageEncoding:当前jsp文件的编码---可以收录contentType

  contentType: response.setContentType(text/html;charset=UTF-8)

  session:jsp在翻译过程中是否自动创建会话

  import:导入java的包

  errorPage:当前页面出错时跳转到哪个页面

  isErrorPage:当前页面是错误处理页面

  PS:page指令对整个页面都有效,不管它的书写位置如何,但是习惯上把Page指令写在JSP页面的顶部

  2. 收录指令

  页面收录(静态收录)指令,可以将一个jsp页面/HTML文件/文本文件收录到另一个jsp页面中

  格式:

  收录include指令的jsp页面的编译过程:

  导入文件中除指令元素外,其他元素都转换成对应的java源代码,然后插入到当前jsp页面翻译的Servlet源文件中。插入位置与当前jsp页面中include的位置一致。

  3. 标签库指令

  在jsp页面中引入标签库(jstl标签库、struts2标签库)

  格式:

  jsp 内置/隐式对象

  jsp翻译成servlet后,service方法中有9个对象被定义和初始化,我们可以在jsp脚本中直接使用这9个对象

  

  既然已经了解了对象,这里就重点学习out和pageContext

  1. 输出对象

  输出类型:JspWriter

  它的功能和response.getWriter返回的PrintWriter很相似,输出内容到客户端out.write()

  也相当于一个带有缓存功能的PrintWriter,如图:

  

  在 JSP 页面中,通过 out 隐式对象写入数据,相当于将数据插入到 JspWriter 对象的缓冲区中。只有调用 ServletResponse.getWriter 方法,才能真正将缓冲区中的数据写入 servlet 引擎提供的缓冲区。在那个地区。

  默认输出缓冲区为 8kb。可以设置为 0 关闭 out 缓冲区,将内容直接写入响应缓冲区。

  2. pageContext 对象

  jsp页面的context对象,page对象和pageContext对象不是一回事

  效果如下:

  1) pageContext 是一个域对象

  setAttribute(字符串名称,对象 obj)

  获取属性(字符串名称)

  删除属性(字符串名称)

  pageContext 可以访问其他指定域的数据

  setAttribute(字符串名称,对象 obj,int 范围)

  getAttribute(字符串名称,整数范围)

  removeAttrbute(字符串名称,int 范围)

  findAttribute(字符串名称)

  PS:使用findAttribute()方法查找名为name的属性时,该属性依次从pageContext域、请求域、会话域、应用域中获取。在某个域中获取后,不会向后搜索。

  四个范围的总结:

  page domain:当前jsp页面的范围

  请求字段:请求

  会话字段:会话

  应用领域:整个网络应用

  2)可以获取其他8个隐式对象(不常用)

  例如:pageContext.getRequest()

  pageContext.getSession()

  jsp标签(动作)

  页面收录(动态收录):

  收录的原则是对收录的页面进行编译处理后,将结果收录在页面中。当浏览器第一次请求使用其他页面的页面时,web容器首先编译被收录的页面,然后将编译过程的结果收录在页面中,再编译被收录的页面,最后编译这两个页面。合并的结果返回给浏览器。

  请求转发:

  动态收录和静态收录的区别

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线