15、JSP标签
程序员文章站
2022-07-12 14:30:17
...
一、JSP标签
- JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。
- JSP常用标签
- <jsp:include> <jsp:forward> <jsp:param>
二、<jsp:include>标签
- <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入
- 语法:<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
- page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
- flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。
- <jsp:include>与include指令的比较
- ----<jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
- ----而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并
- ----不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。
三、<jsp:forward>标签
- <jsp:forward>标签用于把请求转发给另外一个资源。
- <jsp:forward page="relativeURL | <%=expression%>" />
- page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。
四、<jsp:param>标签
- 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
- 语法
语法1: <jsp:include page="relativeURL | <%=expression%>"> <jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include> 语法2: <jsp:forward page="relativeURL | <%=expression%>"> <jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>
- <jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
- 映射JSP,为jsp配置对外访问路径
<servlet> <servlet-name>SimpleJspServlet</servlet-name> <jsp-file>/jsp/simple.jsp</jsp-file> <load-on-startup>1</load-on-startup > </servlet> …… <servlet-mapping> <servlet-name>SimpleJspServlet</servlet-name> <url-pattern>/xxx/yyy.html</url-pattern> </servlet-mapping>
- 不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
- 其原因为,程序的数据通常要美化后再输出:
- 让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
- 让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
- 因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
- web开发中的4个域对象:pageContext(称之为page域)request(称之为request域)session(称之为session域)servletContext(称之为application域)
- 如果一个数据只是在当前jsp页面中使用使用page域
- 如果一个数据只是当前请求处理后用来展示放在request域
- 如果一个数据除了用来当前请求使用,我过一会还要用,放在session域中
- 如果一个数据除了当前请求使用,过一会别人还要用,放在application域中。
上一篇: 17、JSTL标签库
下一篇: 15、JSP标签