1.JSP 动作元素
1.1 jsp:include 动作元素:动态包含
动态包含:把其它资源页面的内容,合并到当前要包含的页面,最后一块输出。
基本语法格式:
动态包含特点:多个页面的内容合并输出,多个jsp页面生成多个java文件,编译成多个class文件
静态包含特点:多个页面的内容合并输出,多个jsp页面最终生成一个java文件,编译一个class文件。
(1)在chaper06项目的WebContent 目录下编写两个JSP文件,分别是includedjsp和dynamiclnclude.jsp其中,dyamicnclude jsp页面用于引入included.jsp 页面。included.jsp作为被引入的文件,让它暂停5秒钟后才输出内容,这样,可以方便测试jsp:include标签的flush属性。included. jsp的具体代码如下图所示,:
dynamicInclude.jsp具体代码如下图所示:
(2)启动Tomcat服务器,访问地址"htp://ocalhost:9999/chapter06/dynamicInclude jsp"后,发现浏览器首先会显示dynamicInclude.jsp 页面中的输出内容,等待5秒后,才会显示included.jsp页面的输出内容。说明被引用的资源included.jsp在当前JSP页面输出内容后才被调用。其最后显示结果如下图所示。
1.2 jsp:forward动作元素:请求转发。
它的作用实现请求转发,效果等同于RequestDispathcer对象的forward方法。
基本语法格式:
转发页面的url地址:不需要携带项目名称,因为转发动作是服务器内部行为。
首先编写一个用于实现转发功能的jspforward.jsp页面和一个用于显示当前时间的welcome.jsp页面,具体如下:
启动Tomcat服务器,通过浏览器访问“http://localhost:9999/chapter06/jspforward.jsp”,浏览器显示界面如下图所示:
2.阶段案例:传智书城JSP页面
实现首页
注意事项:
1.在html网页不能书写与jsp相关的内容。
2.${pageContext.request.contextPath}:作用就是获取项目名称的路径,比如:/chapter06
设计首页面步骤:
1.首页设置
创建一个index.jsp页面,在这里实现跳转到首页面的效果
2.文件移植
修改client目录下面的所有html文件,修改成jsp,为了就是jsp知识点。
解决中文乱码,只需要将每个JSP文件中加上page指令即可,其代码:
3. 修改了JSP页面中的地址和链接
虽然此时表面上看,index.jsp可以正常访问了,但是当点击页面右上角的“新用户注册”时,会发现浏览器未显示出注册页面,而是报出“404"” 错误,
当点击“ 新用户注册”链接后,所访问的链接路径是/chapter06/register.jsp,而项目中注册页面的真实路径是/chapter06/client/register.jsp,所以出现了“404”错误。要解决此问题,只需在index.jsp 页面文件中的链接和图片等路径前,加入“${pageContext.request.contextPath}/client/"即可。
修改后的链接如下所示。
4.抽取页面代码
把client目录下面的首页面分离出来几个jsp文件,分离的jsp文件比较通用性,在其它页面也能用到,分离的目的:提高代码的复用性。
分离index.jsp页面:
第一部分:导航菜单,对应head.jsp
第二部分:搜索栏,对应menu_search.jsp
第三部分:底部信息,对应foot.jsp
在index.jsp页面引入分离的文件:<%@ include file="" %>
2. 实现注册页面(参考首页面的设计)
2.1 修改注册页面,引用公共页面代码
修改index.jsp页面代码