在 WEB 项目开发中 JSP 占据着举足轻重的地位。

使用 JSP 技术解决了:使用 Servlet 进行页面的展现,代码书写过于麻烦。极大影响开发效率的问题;

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

特点:

本质上还是 Servlet ;

跨平台,一次编写处处运行 ;

组件跨平台 ;

健壮性和安全性;

Jsp 的访问原理:

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

注意:当访问jsp时本质上服务器还是调用servlet,只是中间做了转译操作,在jsp中可以书写HTML+CSS+JS+JAVA代码,jsp中的Java代码会被原样转义到其对应的java文件中执行

jsp的page指令:page指令的作用:设置jsp转译的时候的一些配置信息。

jsp的局部代码块和全局代码块和脚本段语句

局部代码块和全局代码和脚本段语句的声明分别是:

局部代码块声明方式: <% 局部代码块内容 %>

全局代码块声明方式: <%! 全局代码块内容 %>

<%= 脚本语句%>

局部代码块声明和全局代码块声明的区别是:

使用局部代码块声明的java代码会被原样转译到_jspService方法中。也就是局部代码。

全局代码块中声明的java代码,在被转译时,会转译成jsp对应的java文件的全局的代码。作用是:声明方法和全局量等。

使用全局代码块声明方法,使用局部代码块调用方法。

除了全局声明,其他所写的默认都是_jspService的代码体,Java代码会被默认转译到_jspService中。

脚本语句:

没有脚本语句时:

脚本语句:

jsp的注释:

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

静态引入和动态引入的区别是:

被引入的jsp文件和原有jsp文件被转译成一个java文件使用。也因为被转译为一个Java文件,所以静态引入的相关jsp文件中不能声明同名变量。

被引入的文件会被单独转译,原有jsp文件会调用被引入的jsp文件。因为是调用关系,所以动态引入的相关jsp文件中可以声明同名变量。

两者的公共点是:实现了不同jsp之间的资源共享。

jsp的forward标签:

问题:不同的jsp在处理请求时,有可能会将当前的请求转发给另外的jsp进行处理。

解决:使用forward动作指令,作用是:从当前jsp跳转另外一个jsp页面。

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

注意事项:forward标签中除了<jsp:param value="" name=""/>子标签以外不能出现其他内容(包括空格),否则会报错。

jsp的内置对象学习:

jsp中的四个作用域对象是:作用域是指变量使用的有效范围。

pageContext:当前页面作用域

request:从请求创建到请求消亡这段时间

session :一段客户端和服务器持续连接的时间

application:ServletContext对象,解决了不同用户之间的数据共享问题:服务器开始到服务器关闭为止

jsp和Servlet的职责:

JSP 负责页面展现,Servlet 负责业务逻辑处理。

(涉及到前端脚本语言;js;html;css等,当然还包括数据本身;数据来自于Servlet的处理结果;会涉及到数据的流转,即涉及到请求转发,重定向等。)

servlet请求转发和重定向jsp页面以及相对路径:

使用相对路径请求转发和重定向会出现的问题:

因为相对路径比较依赖于当前文件的位置,位置改变则相对路径也要随之修改,否则无法生效。而且使用相对路径的前提条件是当前Servlet对应配置文件中配置的url-pattern的别名不能为路径。

Servlet中请求转发和重定向的绝对路径

请求转发中第一个斜杠“/”代表当前项目的根目录。

重定向路径中第一个斜杠“/”代表服务器根目录。

jsp中的绝对路径和basePath方式

jsp中的路径的第一个斜杠“/”代表服务器目录。

jsp中的basePath设置的作用:相当于将当前页面的资源全部默认定位为从项目根目录开始查找,设置后可省去第一个/。

jsp代码项目例子_【jav笔记】057天,jsp。相关推荐

  1. JSP、EL和JSTL-学习笔记01【JSP基础语法】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

  2. jsp select初始化赋值_分别在javascript和JSP中动态设置下拉列表默认值

    一.JavaScript中动态设置select标签中选项的默认值: 比如,要完成下边这个下拉列表的动态显示,并且当进行前后翻页时,下拉列表中的值自动更新为当前页码: 图1 jsp部分代码如下: 图2 ...

  3. jsp程序带mysql数据库_【web开发】:JSP连接Mysql数据库(非常详细,代码一看就懂)...

    1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...

  4. 决策树对鸢尾花数据两特征组合分类python代码的结果_机器学习笔记-决策树

    在看决策树之前,先看下之前说过的逻辑回归 上图为判断是否要交往的逻辑回归算法图 把身高,财富,颜值分别与w1,w2,w3相乘求和得到一个结果. (其中w1为高的权重,如果比较在意身高,那么w1就会偏大 ...

  5. 将java类转换成jsp的例子_使用 动作可以在JSP页面中得到Bean实例的属性值,并将其转换为()_学小易找答案...

    [单选题]下面哪个方法当服务器关闭时被调用,用来释放Servlet所占用的资源? [多选题]非处方药的遴选原则是( ). [单选题]主控制板与门机变频器有开门.关门命令.公共端,那么主控制板应该是() ...

  6. mysql数据库项目例子_很实用的MySql数据库语句(项目中的例子)

    mysql> insert into student -> values('013','张恒','男','1992-2-3','信息系'); Query OK, 1 row affecte ...

  7. springboot的jsp应该放在哪_在springboot中集成jsp开发

    springboot就是一个升级版的spring.它可以极大的简化xml配置文件,可以采用全注解形式开发,一个字就是很牛. 在springboot想要使用jsp开发,需要集成jsp,在springbo ...

  8. JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

  9. JSP、EL和JSTL-学习笔记02【MVC】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

  10. JSP、EL和JSTL-学习笔记04【JSTL常用标签】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

最新文章

  1. Java设计模式-命令模式Command
  2. C++ map 中的reverse_iterator
  3. ConstraintLayout 学习笔记
  4. 理解js中的原型链,prototype与__proto__的关系
  5. pl/postgresql_将PostgreSQL PL / Java安装为PostgreSQL扩展
  6. 3d制作中需要注意的问题_浅谈线路板制作时需要注意的问题
  7. STM32那点事(2)_时钟树(上)
  8. java线程使用不当,java多线程使用不当造成的问题
  9. hard-negative mining 及伪代码实现
  10. Tricks(十七) —— 数组与字典(map)
  11. JDBC常用接口详解
  12. 分布式文件系统HDFS体系
  13. R语言ETL工程系列:总论
  14. 【数学建模】基于matlab无线可充电传感器网络充电路线规划【含Matlab源码 750期】
  15. 人脸识别之特征脸方法(Eigenface)PCA方法
  16. Agilent/安捷伦N6705B直流电源分析仪
  17. 年终固定资产盘点报告可一键生成
  18. JAVA小记3(第三周)
  19. 校招 - 行业测评题、图形推理题、逻辑思维面试题,解题技巧汇总
  20. 如何设置本电脑中的mysql让别人的电脑连接

热门文章

  1. CF1042A Benches
  2. ts的小demo--贪吃蛇(尚硅谷教程笔记)
  3. vant-ui的list
  4. js高级学习笔记(b站尚硅谷)-15-闭包的剩余知识
  5. win10文件后缀名怎么显示_显示文件类型扩展名图文教程,win电脑系统文件修改后缀名方法...
  6. python字符串转为ascii码_Python学习经验:无重复字符的最长子串
  7. php utc时间_datetime - 以PHP格式获取UTC时间
  8. nginx 没有cookie_nginx实现负载均衡的原理及策略
  9. 均线策略python代码_Python版商品期货多品种均线策略
  10. java模拟http_java模拟http请求的错误问题整理