概念:

JSP 全名为 Java Server Pages, 中文名叫 java 服务器页面, 其根
本是一个简化的 Servlet 设计, 它是由 Sun Microsystems 公司
倡导、 许多公司参与一起建立的一种动态网页技术标准。

特点:
    本质上还是 Servlet
    跨平台, 一次编写处处运行
    组件跨平台
    健壮性和安全性

Jsp 的访问原理:
    浏览器发起请求, 请求 JSP, 请求被 Tomcat 服务器接收, 执行
JspServlet 将请求的 JSP 文件转义成为对应的 java 文件(也是
Servlet), 然后执行转义好的 java 文件。

从JSP的头讲起:

Jsp的三种注释

        前端语言注释:

            会被转译,也会被发送,但是不会被浏览器执行

        java语言注释:

            会被转译,但是不会被servlet执行

        Jsp注释:

            不会被转译。

Jsp的局部代码块:

特点:

局部代码块中声明的java代码会被原样转译到jsp对应的servlet文件的_JspService方法中

代码块中声明的变量都是局部变量。

使用:<% java代码  %>

缺点:

使用局部代码块在jsp中进行逻辑判断,书写麻烦,阅读困难。

开发:

servlet进行请求逻辑处理,使用jsp进行页面展现。

Jsp的全局代码块:

特点:

声明的java代码作为全局代码转译到对应的servlet类中。

使用:

<%! 全局代码 %>

注意:

全局代码块声明的代码,需要使用局部代码块调用。

注意这里有感叹号

Jsp的脚本段语句:

特点:帮助我们快速的获取变量或者方法的返回值作为数据响应给浏览器。

使用:<%=变量名或者方法%>

注意:不要在变量名或者方法后使用分号

位置:除jsp语法要求以外的任意位置。

Jsp的静态引入和动态引入:

静态引入:

<%@include file="要引入的jsp文件的相对路径" %>

特点:

会将引入的jsp文件和当前jsp文件转译成一个java(Servlet)文件使用。

在网页中也就显示了合并后的显示效果。

注意:

静态引入的jsp文化不会单独转译成java(Servlet)文件。

当前文件和静态引入的jsp文件中不能够使用java代码块声明同名变量。

动态引入:

<jsp:include page="要引入的jsp文件的相对路径"></jsp:include>

特点:

会将引入的jsp文件单独转译,在当前文件转译好的java文件中调用引入的jsp文件的转译文件。

在网页中显示合并后的显示效果。

注意:

动态引入允许文件中声明同名变量。

jsp的转发标签:

优点:

降低jsp代码的冗余,便于维护升级。

jsp的转发标签forward:

使用:

<jsp:forward page="要转发的jsp文件的相对路径"></jsp:forward>

特点:

一次请求

地址栏信息不改变。

注意:

在转发标签的两个标签中间除了写<jsp:param name="str" value="aaa" />子标签不会报错,其他任意字符都会报错。

<jsp:param name="str" value="aaa" />

name属性为附带的数据的键名

value为附带的数据内容

注意:会将数据以?的形式拼接在转发路径的后面。

jsp的九大内置对象:

内置对象:

jsp文件在转译成其对应的Servlet文件的时候自动生成的并声明的对象。我们在jsp页面中直接使用即可。

注意:

内置对象在jsp页面中使用,使用局部代码块或者脚本段语句来使用。不能够在全局代码块中使用。

内容:九个对象

pageContext:页面上下文对象,封存了其他内置对象。封存了当前jsp的运行信息。

注意:每个Jsp文件单独拥有一个pageContext对象。

作用域:当前页面。

request:封存当前请求数据的对象。由tomcat服务器创建。一次请求

session:此对象用来存储用户的不同请求的共享数据的。一次会话

application:也就是ServletContext对象,一个项目只有一个。存储用户共享数据的对象,以及完成其他操作。项目内

response:响应对象,用来响应请求处理结果给浏览器的对象。设置响应头,重定向。

out:响应对象,Jsp内部使用。带有缓冲区的响应对象,效率高于response对象。

page:代表当前Jsp的对象。相当于java中的this。

exception:异常对象。存储了当前运行的异常信息。

注意:使用此对象需要在page指定中使用属性isErrorPage="true"开启。

config:也就是ServletConfig,主要是用来获取web.xml中的配置数据,完成一些初始化数据的读取。

四个作用域对象:

pageContext:当前页面.解决了在当前页面内的数据共享问题。获取其他内置对象。

request:一次请求。一次请求的servlet的数据共享。通过请求转发,将数据流转给下一个servlet。

session:一次会话.一个用户的不同请求的数据共享。将数据从一次请求流转给其他请求。

application:项目内.不同用户的数据共享问题。将数据从一个用户流转给其他用户。

作用:

数据流转

Jsp的路径:

在jsp中资源路径可以使用相对路径完成跳转,但是:

问题一:资源的位置不可随意更改。

问题二:需要使用../进行文件夹的跳出。使用比较麻烦。

使用绝对路径:(必须会)

/虚拟项目名/项目资源路径

例如:

<a href="/jsp/jspPro.jsp">jspPro.jsp</a>

<a href="/jsp/a/a.jsp">a.jsp</a><br />

注意:在jsp中资源的第一个/表示的是服务器根目录,相当于:localhost:8080

使用jsp中自带的全局路径声明:

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<base href="<%=basePath%>">

作用:

给资源前面添加项目路径:        http://127.0.0.1:8080/虚拟项目名/上

一文复习JSP内容的更多相关文章

  1. 22----2013.06.29---HTML--html介绍.超链接和图片,表格,表单,表单标签,meta,复习当天内容

    01 HTML HTML :Hypertext Markup Language   超文本标记语言(类似于 裸奔的人.) 作用:向用户展示信息. CSS: Cascading 层叠样式表(类似于 人的 ...

  2. C# 给Word文档添加内容控件

    C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word ...

  3. 将Word文档发给别人时如何限制别人只能修改文档部分内容

    将Word文档发给别人时如何限制别人只能修改文档部分内容  转自:互联网.时间:2014-04-16   作者:snow   来源:互联网 在很多情况下我们都不希望别人修改我们的文档内容,特别实在将W ...

  4. AJAX实现简单的读取文本文档内容到网页--AJAX

    效果图: Demo.html: <!DOCTYPE html><html lang="en"><head> <meta charset=& ...

  5. 察看下列JSP内容

    察看下列JSP内容 <html><body> <% for (int i=0;i<3;i++){ %> out.print(i*2); <% } %&g ...

  6. C#提取TXT文档指定内容

    早上有分享一篇<VB.NET提取TXT文档指定内容> http://www.cnblogs.com/insus/p/3267347.html 那是原网友的需求用VB.NET写的.刚才有只懂 ...

  7. 文件上传bypass jsp内容检测的一些方法

    bx2=冰蝎2 前段时间渗透遇到了个检测jsp内容的,然后发现全unicode编码就可以绕过,但是对bx2马进行全编码他出现了一些错误,我尝试简单改了下,日站还是bx2操作舒服点 检测内容的话,这样直 ...

  8. 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内

    查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...

  9. JSP内容复习

    JSP的3个编译指令,7个动作指令,9个内置对象 三个编译指令(通知servlet引擎的处理消息,只在JSP转换成Servlet时起作用) 1.编译指令 page page指令用户定义JSP页面中的全 ...

随机推荐

  1. svn提交更新代码提示Please execute the 'Cleanup' command 的解决办法

    那可能是提交或更新代码的过程意外终止,第二次提交或更新会报这个错误 更新或上传的时候动作没有完成,导致本地存在锁定状态没有释放 或者有文件正在更新或上传,该文件夹被锁定. 解决办法: 将对应文件夹里的 ...

  2. 138.更改session的存储机制

    修改session的存储机制: 默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方.可以通过设置SESSION_ENGINE来更改session的存储位置,这 ...

  3. Dalsa 8K彩色相机Camera link C#采图

    一个采图工具,所以界面做的很简单. private SapAcquisition m_Acquisition; private SapBuffer m_Buffers; private SapAcqT ...

  4. 百度的Ueditor在VS2015/VS2010中配置需注意的地方

    1.下载:https://ueditor.baidu.com/website/download.html#uedito 官网已无1.4.3的.net版本下载,不知道百度在搞什么,下载完整版和ASP版本 ...

  5. include=FALSE的作用

    每次都会加载很多的包,会显示很多没用的信息,特别是那个spdep. 例如: {r include=FALSE} library(plm) library(tseries) library(zoo) l ...

  6. vjudge 最大公约数GCD 直接求最大共约束和最小公倍数的指令

    原题链接https://vjudge.net/contest/331993#problem/C 输入2个正整数A,B,求A与B的最大公约数. Input2个数A,B,中间用空格隔开.(1<= A ...

  7. 诡异的Integer

    先看下面的这个代码,为什么同样的都是赋值,却得不到同样的结果,也没有超出int的范围啊?这是为什么? package ppt_test; public class StrangeIntegerBeha ...

  8. Alice and Hairdresser

    Alice's hair is growing by leaps and bounds. Maybe the cause of it is the excess of vitamins, or may ...

  9. Linux - mysql 异常: ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

    问题描述 ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists 解决方案 删除:/var/lock/su ...

  10. gulp打包js多个文件夹并压缩混淆,编译ES6语法,及多个import依赖由一个入口打包成一个cdn

    感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件g ...