JSP动作标签

Posted yusiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP动作标签相关的知识,希望对你有一定的参考价值。

  JSP的动作标签由服务器解释执行,动作标签的格式是固定的,

  • <jsp:forward>:这个动作标签的用处,与Servlet的请求转发是一样的
  • <jsp:include>:这个标签的用处与Servlet的请求包含一致的,
  • <jsp:param>:这个标签用来作为forward和include的子标签,用来给转发或者包含的标签传递参数 

  来看一个例子:

  a.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>a.jsp</h1>
<jsp:forward page="b.jsp">
    <jsp:param value="yu" name="username"/>
    <jsp:param value="123" name="password"/>
</jsp:forward>
</body>
</html>

  b.jsp

<h1>b.jsp</h1>
<%
    String username = request.getParameter("username");
    String password = request.getParameter("password");
%>
<%= username%>
<%= password%>

  

  我们请求a.jsp发现服务器给我们响应的内容包含两个两个jsp页面,在来查看生成的java文件,发现生成了两个java文件,可见这种包含,与JSP的include指令是有区别的,查看源码,发现a_jsp.javad的_jspService方法中多了这么一句代码:

org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "b.jsp", out, false);

  在a.jsp中的<jsp:include>动作标签被转换为了一种方法调用,并将b.jsp当作参数传递了进去,同时还有request和response两个参数,可见它们使用了同一个request和respnse,所以能能同时对客户端响应,注意只有使用<jsp:include>标签,a.jsp和b.jsp才可以都对客户端进行响应,<jsp:forward>标签,使用该标签的jsp页面只能设置响应头。如果使用的是<jsp:forward>标签,那么服务器给我们的响应只有b.jsp。

 

在context.xml中配置reloadable

  当我们修改文件之后,一般要重启服务器,在在context.xml中配置reloadable=true,之后可避免这个问题,这种方式适合在项目开发阶段使用

<Context reloadable="true">
</Context>

  

 

以上是关于JSP动作标签的主要内容,如果未能解决你的问题,请参考以下文章

JSP动作标签

JSP动作标签

jsp动作标签

jsp param动作标签

JSP标签语法JSTL标签库EL表达式辨析

在 JSP 中的 <% %> 代码片段中添加链接