一、JSP标签

 

  1. JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。
  2. JSP常用标签
  3. <jsp:include>          <jsp:forward>         <jsp:param>

二、<jsp:include>标签

 

  1. <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入
  2. 语法:<jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
  3. page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
  4. flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。 
  5. <jsp:include>与include指令的比较
  6. ----<jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。 
  7. ----而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并
  8. ----不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。

三、<jsp:forward>标签

 

  1. <jsp:forward>标签用于把请求转发给另外一个资源。
  2. <jsp:forward page="relativeURL | <%=expression%>" /> 
  3. page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

四、<jsp:param>标签 

 

  1. 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
  2. 语法
语法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>
  1. <jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。 
  2. 映射JSP,为jsp配置对外访问路径 <servlet>
1. 	<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最佳实践


  1. 不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
  2. 其原因为,程序的数据通常要美化后再输出:
  3. 让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
  4. 让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
  5. 因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

六、域的总结


  1. web开发中的4个域对象:pageContext(称之为page域)request(称之为request域)session(称之为session域)servletContext(称之为application域)
  2. 如果一个数据只是在当前jsp页面中使用使用page域
  3. 如果一个数据只是当前请求处理后用来展示放在request域
  4. 如果一个数据除了用来当前请求使用,我过一会还要用,放在session域中
  5. 如果一个数据除了当前请求使用,过一会别人还要用,放在application域中。