JSP指令和JSP动作

JSP指令

语法:<%@ 指令名 属性名1=值1 属性名2=值2… %>
常用的三个指令
1)page指令
errorPage属性:指定当页面出错时,要跳转到哪个错误处理页面
2)include指令
该指令可以将其它文件包含进来,被包含的文件可以是jsp文件,html文件等等.被包含的文件和主文件一起翻译和编译。当前文件是主文件.
通常被包含的文件只需要保留page指令和它body里面的内容,其它标签都可以删除
例如

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    
    <div style="background-color: gray;color:red;">我是页面的头部</div>

JSP动作

语法:<jsp:动作名 属性名=值 >
1)include动作:将html或jsp文件包含到当前文件中,当前文件是主文件
语法:<jsp:include page=“相对 URL 地址” flush=“true” />
使用include动作包含时,被包含的文件和主文件是单独的翻译和编译的。而include指令包含的时候,被包含的文件和主文件一起翻译和编译
项目中何时需要用到包含文件?

当项目中多个页面共享相同的css样式布局时,就可以把公共的css样式布局代码抽取到单独的jsp文件中,再在多个页面上使用include指令或include动作将jsp文件包含进去
2)forward动作:将当前请求转发到其它资源上
在转发过程中,浏览器的地址栏没有变化,还是原来的请求路径,转发是在服务器内部发生的跳转,对于用户来说是不知道的(因为url没有变化)
补充知识点:
在jsp页面的page指令下方的变量意义

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

变量path:值是web应用的根路径,即/xxx,xxx就是web应用的名称,前面的/代表web应用根路径是参照web服务器的根路径的,只要将/xxx接在web服务器根路径后面就行了
变量basePath:获取协议及版本号(getScheme())+“: //”+主机名(比如localhost或127.0.0.1)+”:”+端口号+web应用根路径+“/”
例如:
在这里插入图片描述
应用:当在webRoot的某个文件夹里的页面中通过点击超链接跳转到上一级页面时,不能使用…/,因为会丢失web应用的根路径
在这里插入图片描述
解决方案:不要使用…/来退回到上一级,把…换成path或basePath都行
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44013790/article/details/87206610