Javaweb(jsp技术) —— ——jsp动作元素

jsp动作元素


前言

一本书中这样写到:一个能靠自己的能力改变命运的人,是有幸的,也是灵魂滚烫的,因为这些人把命运掌握在自己的手中,并且成为命运的主宰。而人的一生中究竟有多少个春秋,有多少事是值得回忆和纪念的。生命就像一张白纸,等待着我们去描绘,去谱写。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JSP动作元素

JSP动作元象用来控制JSP的行为,执行一些常用的JSP页面动作。通过动作元素可以重既使用多行Java代码能够实现的效果,如包含页面文件、实现请求转发等。

1.1include动作元素

在JSP页面中,为了把其他资源的输出内容插入到当前JSP页面的输出内容中,JSP技术提供了动作元素,动作元素的具体语法格式如下所示。
<jsp:include page=“relativeURL” flush=“true | false” />

在上述通法格式中。page属性用于指定被引入资源的相对路径; flush 属性用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false。
包含的原理是将被包含的页面编译处理后将结果包含在页面中。当浏览器第1次通求个使用包含 其他页面的页面时,Web容器首先会编译被包含的页面, 然后将编泽处理后的返回结果包含在页面中,之后编译包含页面,最后将两个页面组合的结果回应给测览器。为了使读者更好地理解jsp:include动作元素,接下来,通过一个案例来演示动作元素的使用,具体如下。

(1) 在chapter06项目的WebContent目录下编写两个JSP文件,分别是included.jsp和dynamicncludejsp.其中,dynamicInclude,jsp 页面用于引入included,jsp 页面。included isp作为被引入的文件,让它暂停5秒钟后才输出内容,这样,可以方便测试jsp:include标签的flush属性。included jsp的具体代码如下所示,dynamicInclude jsp具体代码如下所示。
included.jsp

在这里插入图片描述

1.2forward动作元素

jsp:forward动作元素将当前请求转发到其他Web资源(HTML页面、JSP页面和Servlet等),在执行请求转发之后的当前页面将不再执行,而是执行该元素指定的目标页面。其具体语法格式如下所示。

<jsp: forward page=“relativeURL” />

在上述语法格式中,page属性用于指定请求转发到的资源的相对路径,该路径是相对于当前JSP页面的URL。
为了使读者更好地理解jsp:forward动作元素,接下来,通过一个案例来学习jsp:forward动作元素的具体用法。
首先编写一个用于实现转发功能的jspforward.jsp 页面和一个用于显示当前时间的welcome.jsp页面
在这里插入图片描述

1.3阶段案例:传智书城JSP页面

1.首页设置
在capter06项目的WebContent目录下创建一一个名称为index.jsp的页面文件,该文件使用forward动作元素跳转到项目客户端展示的首页,其主要代码如下所示。

2.文件移植 将第1章中传智书城案例中的client文件夹复制到WebContent目录下,并将client文件夹下的所有.html文件改为.jsp文件,修改后client文件夹下的文件如图所示。在这里插入图片描述
如果此时运行项目,并访问http://localhost:9999/chapter08/clint/index.jsp" ",会发现页面中的中文都是乱码。其实,要想解决此问题十分简单,只需要将每一一个 JSP文件中都加上page指令即可,其代码如下所示。
<%@page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>

添加page指令后,重新启动Tomcat服务器,再次访问index.jsp 页面,这时所有中文就可以正确显示了。
3.修改JSP页面中的地址和链接
虽然此时表面上看,index.jsp可以正常访问了,但是当点击页面右上角的“新用户注册”时,会发现浏览器未显示出注册页面,而是报出“404" 错误
当点击“新用户注册”链接后,所访问的链接路径是/chapter06/register.jsp,而项目中注册页面的真实路径是/chapter06/client/register.jsp,所以出现了“404"错误。要解决此问题,只需在index.jsp页面文件中的链接和图片等路径前,加入“${pageContext.request.contextPath}/client/ 。 即 可 。 修 改 后 的 链 接 如 下 所 示 :
<ahref=" {pageContext. request. contextPath}/client/ register.jsp">
4.抽取页面代码

虽然已成功将HTML文件改为了JSP文件,并能够成功访问,但是在index.isp和register jisp中包含了大量的重复代码(如两个页面中的头部、菜单列表以及页面底部代码)。通常一一个项目中的头部和底部代码是固定的,如果每一个页面都有这些代码,会使项目十分臃肿,不利于项目的开发和维护。此时,可以将项目中的重复代码抽取出到一个新的JSP页面,然后通过JSP的include指令来引入这些抽取出的JSP页面。具体如下。

(1) 在client文件夹下创建一个名称为head.jsp的文件,将传智书城index.jsp首部抽取出到headjisp中。其中,head.jsp页面的代码如文件所示。
在这里插入图片描述
(2) 在client文件夹下创建一一个名称为menu_ search.isp的文件,将传智书城index.psp中等单列表中的代码抽取出到menu_ search.jsp 中。其中,menu._search.isp页面的代码如文件
在这里插入图片描述
(3) 在client文件夹下创建-个名称为foot.jsp的文件,将传智书城index.jsp中底部的代码抽取出到foot.jsp中。其中,foot.jsp 页面的代码如下
在这里插入图片描述
(4) 使用inlude指令将抽取出的3个JSP页面包含在index.jsp中,其主要代码如下在这里插入图片描述
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_54405545/article/details/121411747