JSP基础知识总结

JSP的三种注释

前端语言注释:<!- - 注释内容 - ->
会被转译,也会被发送,但是不会被浏览器执行

java语言注释:// /* */
会被转译,但是不会被servlet执行

JSP注释:<%-- --%>
不会被转译

.

.

JSP的page指令

作用:配置jsp文件的转译相关的参数。

使用:<%@page 属性名=“属性值” …%>

属性:

  • pageEncoding:设置jsp文件的数据编码格式,同时也设置了浏览器响应的编码格式(即不需要再使用contentType)。如果不设置,可能会出现乱码,因为jsp转换成的servlet是使用utf-8来编码的。

  • contentType:contentType=“text/html;charset=utf-8” 设置jsp数据响应给浏览器时,浏览器的解析和编码格式。

  • session:设置转译的servlet中是否开启session支持,默认开启,true表示开启。false表示关闭

  • errorPage:设置JSP运行错误跳转的页面。

  • extends:设置jsp转译的java文件要继承的父类(包名+类名)

.

.

JSP的局部代码块

特点:局部代码块中声明的java代码会被原样转译到jsp对应的servlet文件的——JspService方法中,代码块中声明的变量都是局部变量
使用:<% java %>
**缺点:**使用局部代码块在jsp中进行逻辑判断,书写麻烦,阅读困难。
开发:servlet进行请求逻辑处理,使用jsp进行页面展示。

JSP的全局代码块 <%! %>
特点:生明的java代码作为全局代码转译到对应的servlet类中。
使用:<%! %>

JSP的脚本段语句
特点:帮助我们快速地获取变量或者方法的返回值作为数据响应=给浏览器。
使用:<%=变量名或者方法%>
注意:不要加分号
位置:除jsp语法要求以外的任意位置。

.

.

JSP的静态引入和动态引入

.

静态引入

使用:<%@include file=“includeStatic.jsp”>

特点:会将引入的jsp文件和当前jsp文件转译成一个java文件使用。在网页中也就显示了合并后的显示效果。

注意:静态引入的jsp文件不会单独转译成java(servlet)文件
当前文件和静态引入的jsp文件中不能够使用java代码块声明同名变量

动态引入

使用:<jsp:include page =“要引入的jsp文件的相对路径”></jsp:include>

特点:会将引入的jsp文件单独转译,在当前文件转译好的java文件中调用引入的jsp文件的转译文件。在网页中显示合并后的显示效果。
注意:动态引入允许文件中声明同名变量

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

.

.

JSP的转发标签forward

使用:<jsp:forward page=“要转发的jsp文件的相对路径”></jsp:forward>
特点

  1. 一次请求
  2. 地址栏信息不改变

注意:
在转发标签的两个标签中出了写<jsp:prarm name=“str” value=“aaa” />子标签不会报错,写其它任何字符都会报错(包括空格)

<jsp:prarm name=“str” value=“aaa” />:其中name属性为附带的数据的键名,value为附带的数据内容。
会将数据以?的形式拼接路径的后面。

.

.

JSP的九大内置对象

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

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

内容:九个对象

  • pageContext:页面上下文对象,封存了其他内置对象。封存了当前jsp的运行信息,解决了在当前页面内的数据共享问题。
    注意:每个jsp文件单独拥有一个pageContext对象

  • request:封存当前请求数据的对象,由tomacat服务器创建
    作用域:一次请求

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

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

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

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

  • page:代表当前jsp的对象。相当于java中的this exception:异常对象,存储了当前运行的异常信息。
    注意:使用此对象需要在page指定中使用属性isErrorPage="true"开启

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

  • exception:异常对象,存储了当前运行的异常信息。
    注意:使用此对象需要在page指定中使用属性isErrorPage="true"开启

.

.

四个作用域

pageContext:当前页面。解决了在当前页面内的数据共享问题。获取其它内置对象
request:一次请求。一次请求的servlet的数据共享。通过请求转发,将数据流转给下一个servlet
session:一次会话,一个用户的不同请求的数据共享。将数据从一次请求流转给其他请求。
application:项目内。不同用户的数据共享问题。将数据从一个用户流转给其他用户。

作用:数据流转

.

.

JSP的路径

相对路径

在jsp中资源路径可以使用相对路径完成跳转,但是有如下两个问题

  • 问题一:资源的位置不可以随意更改。
  • 问题二:需要使用…/进行文件夹的跳出。使用比较麻烦。

使用绝对路径

使用:/虚拟项目名/项目资源路径
如:
herf="/jsp/jspPro.jsp"
herf="/jsp/a/a.jsp"

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

.

使用jsp中自带的全局路径声明
<%
String path=request.getContextPath();
String basePath=request.getScheme()+":"+"//"+
request.getServerName()+":"+request.getServerPort()+path+"/";
%>
作用
给资源前面添加项目路径: http://127.0.0.1:8080/虚拟项目名/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值