甘肃做高端网站,帝国cms导航模板,有哪些做婚礼平面设计的网站有哪些,营销型网站建设sempk好 下面我们聊聊JSP中的指令标签 这边 我们来说两个 分别是 静态包含 和 动态包含 我们可以将重用性代码包含起来 更好的使用
比如 我们界面上中下 分别有三个导航栏 那么 如果你写三份 就会出现很多重复代码 而且 改起来 也很不方便 要一次改三份
口说无凭 我们来做一个小案…好 下面我们聊聊JSP中的指令标签 这边 我们来说两个 分别是 静态包含 和 动态包含 我们可以将重用性代码包含起来 更好的使用
比如 我们界面上中下 分别有三个导航栏 那么 如果你写三份 就会出现很多重复代码 而且 改起来 也很不方便 要一次改三份
口说无凭 我们来做一个小案例 我们先在 jsp同目录下创建两个 jsp页面文件 分别叫 header.jsp 和 footer.jsp 然后 我们这里 写简单一点吧 header.jsp代码如下
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
headtitle头部/title
/head
bodyh1头部部分/h1
/body
/htmlfooter.jsp 这样写
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
headtitle尾部/title
/head
body
h1尾部部分/h1
/body
/html这里 我们都只是放了个H1 然后 展示一个文本信息
然后 我们主界面 jsp这样写
先通过静态包含include引入我们刚刚写的两个jsp文件页面部分 这里 不需要担心ile文件路径写错 因为 idea比较只能 你写错了 他会直接给你报红的 如果能显示正常一般就没问题了
% page contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
headtitleJSP - Hello World/title
/head
body
%include fileheader.jsp%
%include filefooter.jsp%
/body
/html然后 我们启动项目 效果也是非常的完美 我们两个jsp页面的内容就被导入进来了
这样 如果我们界面有什么重复的东西 就可以单独写一个界面 然后 要用的地方导入就可以了 而且最大的好处 就是 如果你有一个地方要改 你一改 全部地方就统一改变了 不需要你一个一个改 搞不好还某个忘记了
然后 是我们的动态包含
我们将公共jsp改成这样
% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%
!DOCTYPE html
html
headtitleJSP - Hello World/title
/head
body
h1公共区域/h1
%String dom Hello World;
%
jsp:include pageheader.jspjsp:param namekeyname value%dom%/
/jsp:include
jsp:include pageheader.jspjsp:param namekeyname value你好世界/
/jsp:include
/body
/html我们将 header.jsp 改成动态的包含形式 然后传递了一个参数 键为 keyname 值的话 我们写了两个 一个定义在java代码中 叫 Hello World 另一个 直接写在了属性里 叫 你好世界 然后 我们将 header.jsp代码更改如下
% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%
!DOCTYPE html
html
headtitle头部/title
/head
body%request.setCharacterEncoding(UTF-8);String keyname request.getParameter(keyname);%h1%keyname%/h1
/body
/html我们先用 setCharacterEncoding 将编码格式转为 UTF-8 然后通过getParameter 接受键为keyname的属性 然后输出在 H1标签上 运行结果如下 一般来讲 无脑用 动态包含就好了
他们的区别在于 静态包含会将他们合成一个文件 例如 你在 B页面中静态包含 A 然后 你两个jsp都声明一个叫 name的属性 会报错重名 因为他们会合成一个文件
而静态包含 你两个文件都声明name 没问题 因为 动态包含只是相当于 A是个函数 B调用了他 生成出来的是两个分开的文件