最近还是发现后端开发笔记的模式不太好,不太利于文章的检索和自己的复习,所以还是按照知识点进行记录
今天遇到的一个坑是<%@include %>
指令,这个指令是用于静态导入另一个jsp文件,比如一些页面的头部等,它有一个file属性用来指定文件的路径。include加载的顺序是 优于该jsp页面其他元素的,也就是说它只是简单地去导入file指定的jsp文件
具体遇到的坑是这样的,我在include
指令前面指定了ctx
然后在file中使用了ctx,但是错误提示是找不到这样的路径,究其原因还是因为include 首先执行而这个ctx还没有被定义,所以就出现了这样的问题。
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。include 指令中的文件名实际上是一个相对的 URL 地址。
如果没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。
所以在日常的开发中,还是file="/WEB-INF/....."
这样的方式是比较好的,也就是说file中使用一些动态的元素是不太管用的,还是要写死。
第二点需要注意的是A中include B,那么B的<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
要与A中的一致,否则也会出现错误,之前遇到的问题就是IDE模板定义的contentType在charset前面的;有一个空格,导致了编译出错