码迷,mamicode.com
首页 > Web开发 > 详细

JSP动作标签

时间:2018-10-12 23:41:07      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:方法   避免   lib   例子   war   ble   get   生成   ice   

  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动作标签

标签:方法   避免   lib   例子   war   ble   get   生成   ice   

原文地址:https://www.cnblogs.com/yusiming/p/9780418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!