2023年11月28日发(作者:)
jsp中include的两种⽤法
JSP中的include的两种⽤法
1.两种⽤法
<%@ include file=” ”%>
2.⽤法区别
(1)执⾏时间上区别
<%@ include file=”relativeURI”%> 是在翻译阶段执⾏
(2)
引⼊内容的不同
<%@ include file=” ”%>
jsp的include指令元素读⼊指定页⾯的内容。并把这些内容和本来的页⾯融合到⼀起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的
阶段进⾏的。
3.如何使include页⾯携带⼊参
4. 说明:翻译阶段
翻译阶段:
jsp页⾯不能原封不动地被传送给浏览器,全部的jsp元素都必须⾸先由服务器进⾏处理。这是通过将jsp页⾯转达化成servlet,然后执⾏这个
servlet来结束的。服务器需要⼀个jsp容器来处理jsp页⾯。jsp容器平常以servlet的情势来实现,这个servlet经过配置,可以处理对jsp页⾯的
全部请求。
Jsp容器重视将jsp页⾯转化成servlet(称为jsp页⾯实现类—JSP Page implementation class),并编译这个servlet。这两步就组成了翻译阶
段.
请求处理阶段:
Jsp容器除了上⾯提到的重视将jsp页⾯转化成servlet外,还重视调⽤jsp页⾯实现类以处理每个请求并产⽣应答.这个阶段我们就称为请求处理阶段.请求处理阶段仅
执⾏类⽂档.
5.⽰例
服务器⽤tomcat,引⼊页⾯的jsp⽂档叫。被引⼊的页⾯叫.这个jsp⽂档⾥存放的是⼀个有关时间的jsp代码,当前的上下⽂根设为test
//======的源⽂档=====//
<%@ page language=”java” contentType="text/html;charset=gb2312"%>
<%
date=new ();
String date_cn ="";
String dateStr = "";
switch(())
{
case 0:date_cn ="⽇"; break;
case 1:date_cn ="⼀"; break;
case 2:date_cn ="⼆"; break;
case 3:date_cn ="三"; break;
case 4:date_cn ="四"; break;
case 5:date_cn ="五"; break;
case 6:date_cn ="六"; break;
}
dateStr = (1900+r()) + "年" + (th()+1) + "⽉" + e() + "⽇(星期" + date_cn + ")";
%>
("<%=dateStr%>");
//======以下是的源⽂档=============//
<%@ page language=”java” contentType=”text/html;charset=gb2312”%>
<%--@ include file=”” %-->
这句代码。解决的办法是把⽂档中的这句删掉。刷新后再请求页⾯,正常。
查看tomcat下的临时⽂档,..tomcatworkStandalonelocalhosttest⽬录下会看到test_和test_两个⽂档,
这⾥的java⽂档就是jsp容器将jsp转化成了servlet⽽得到的test_这个⽂档。
相对应的test_这个⽂档就是编译test_这个servlet⽂档产⽣的类⽂档了。打开所产⽣的servlet⽂档(test_)。此时我
们会发觉,在⽂档被转化成servlet⽂档时,在输出的
⾥⾯的代码.
将<%@ include file=””%>换成
输出的⽇期中中⽂出现了乱码.
所以在我们作include⾏动元素引⼊页⾯时,实际只是引⽤了这个⽂档被转化并被编译后产⽣的servlet类⽂档.既如此,就是作为⼀个单独的⽂档在
执⾏后才被⽂档运⾏时调⽤.由于⽂档中⽆指定字符编码.所以出现了乱码.解决办法是在⽂档中重新把刚才去掉的
<%@ page language=”java” contentType=”text/html;charset=gb2312”%>
再查看tomcat下的临时⽂档会发觉.此时多出了⼀个date_⽂档和⼀个date_⽂档.这两个⽂档得来的⽅法跟test_和
test_⽂档得来的⽅法⼀样.再查看⼀下此时test_⽂档的代码会发觉.此时只增加加了⼀句代码:
e(request, response, "", out, true);
它并⽆把⽂档的代码引⼊到.


发布评论