JavaWeb学习篇之----Jsp详解(六)

2014-11-23 23:22:19 · 作者: · 浏览: 5
q2teOhozxicj4Kw/fIt8jnz8LOyszio7o8YnI+CtXiNLj2ttTP87XEyfrD/Nbcxtqjvzxicj4KyrLDtMrH0/Kjv86qyrLDtLDR1eI0uPa21M/zvdDX9tPyttTP88TYo788YnI+CsTE1tbH6b/2z8LTw8TE1tbT8rbUz/Ohozxicj4KCjxicj4KClBhZ2VDb250ZXh0wODW0Lao0uXBy9K7uPZmb3J3YXJkt723qLrNwb249mluY2x1ZGW3vbeowLS31rHwvPK7r7rNzOa0+lJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmS3vbeous1pbmNsdWRlt723qDxicj4KPGJyPgq0q7XduPjV4tCpt723qLXE18rUtMK3vra2vNa7xNzKx8/gttTCt762o6zI57n7wre+ttLUobAvobG/qs23o6yx7cq+z+C21NPatbHHsFdFQtOm08OzzNDytcS4+cS/wryjrLfx1PKjrLHtyr7P4LbU09q1scewSlNQy/nTs8nktb21xLfDzsrCt762oaM8YnI+Cgo8YnI+Cgo8YnI+Cgo8YnI+CgrL5Mi7ztLDx8+jzftKU1DSs8PmvfbTw9f3yv2+3c/Uyr7Eo7/po6yyu9Kqx7bM18jOus5qYXZhtPrC69L9yOvIzrrO0rXO8cLfvK2jrLWr1NrKtbzKv6q3otbQsrvS/cjr0ru149K1zvHC37ytyseyu7/JxNy1xKOstavS/cjr0rXO8cLfvK274bW81sLSs8Pms/bP1sTRv7RqYXZhtPrC66Os1PXDtLDso788YnI+ClN1brmry77UytDt08O7p7+qt6LX1Lao0uWx6sept+LXsNKzw+a1xGphdmG0+sLro6zS1LHjanNw0rPD5rK7s/bP1tK70NBqYXZhtPrC66GjtbHIu3N1brmry77U2mpzcNKzw+bW0NKyxNrWw8HL0rvQqbHqx6ko1eLQqbHqx6m90Nf2anNwserHqSmjrL+qt6LIy9SxyrnTw9Xi0Kmx6sepv8nS1M3qs8nSs8PmtcTSu9Cps6PTw9K1zvHC37ytoaM8YnI+CkpTULHqx6nSsrPG1q7OqkpzcCBBY3Rpb24oSlNQtq/X9ynUqsvYo6zL/NPD09rU2kpTUNKzw+bW0MzhuanStc7xwt+8rbmmxNyhozxicj4KCjxicj4KCjxqc3A6aW5jbHVkZT6x6sepICA8YnI+Cjxqc3A6Zm9yd2FyZD6x6sepICA8YnI+Cjxqc3A6cGFyYW0+serHqSAgPGJyPgoKPGpzcDp1c2VCZWFuPrHqx6kKPGpzcDpzZXRQcm9wZXJ0eT6x6sepCjxqc3A6Z2V0UHJvcGVydHk+serHqQo8YnI+Cgo8anNwOmluY2x1ZGU+serHqdPD09qw0cHtzeLSu7j218rUtLXEyuSz9sTayN2y5cjrvfi1scewSlNQ0rPD5rXEyuSz9sTayN3WrtbQo6zV4tbW1NpKU1DSs8Pm1rTQ0MqxtcTS/cjrt73KvbPG1q7OqravzKzS/cjroaM8YnI+CtPvt6ijujxicj4KPHN0cm9uZz48anNwOmluY2x1ZGUgcGFnZT0="relativeURL | <%=expression%>" flush="true|false" />

page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。

标签是动态引入(和使用代码进行include一样), 标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。 而include指令是静态引入(编译时引入),涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。不管是 标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。
例子: 使用 标签来实现包含页面:
      

      
我们到tomcat的work目录中看一下: \

我们看到,会将head.jsp和foot.jsp单独翻译成servlet,这个就是动态包含
下面在看一下使用include指令实现页面包含:
<%@ include file="/head.jsp" %>
这时候我们发现work目录中并不会还单独翻译head.jsp页面了,同时我们看看MyJsp页面翻译的servlet代码: \
我们看到在代码中使用静态代码块实现静态页面包含的。

标签:使用page属性指定被引入资源。
include指令:使用file属性指定被引入资源。
假设myweb应用的根目录下有一个a.jsp文件 如果将a.jsp页面映射成了如下地址:
http://localhost:8080/myweb/dir1/a.html
在a.jsp页面中使用了如下语句引入b.jsp文件:

请问:b.jsp要位于什么位置,上面的include才不会出错? 
http://localhost:8080/myweb/b.jspf
http://localhost:8080/myweb/dir1/b.jspf

假设myweb应用程序的根目录下有一个a.jsp文件,如果将a.jsp页面映射为如下地址:
http://localhost:8080/myweb/dir1/a.html
在a.jsp页面中使用了如下语句引入b.jspf文件:
<%@ include file=“b.jspf”%>
请问: b.jspf要位于什么位置,上面的include才不会出错?
http://localhost:8080/myweb/b.jspf
http://localhost:8080/myweb/dir1/b.jspf

标签用于把请求转发给另外一个资源。
语法:

page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

当使用 标签引入或将请求转发给其它资源时,可以使用 标签向这个资源传递参数。
语法1:



语法2:



标签的name属性用于指定参数名,value属性用于指定参数值。在 标签中可以使用多个 标签来传递多个参数。

下面来看一下怎么配置jsp的访问路径
            
	
             
              SimpleJspServlet
             
	
             
              /jsp/simple.jsp
             
	
             
              1
             

            
	……

            
	
             
              SimpleJspServlet
             
	
             
              /xxx/yyy.html
             

            

在来看一下Jsp中怎么排查错误:
JSP页面中的JSP语法格式有问题,