JSP_7_JSP指令与动作元素

---7-1 include指令------------------------------------------------------------------

include指令:<%@ include file="URL"%>

date.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="java.text.*" %>
<%
   Date d = new Date();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
   String s = sdf.format(d);
   out.println(s);
%>

Include_Command.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Include_Command.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>Include指令</h1>
    <hr>
    <%@ include file="date.jsp"%>
  </body>
</html>

---7-2 include动作------------------------------------------------------------------

include动作标签

<jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下:

<jsp:include page="relative URL" flush="true" />
常用属性:
page:要包含的页面
flush:被包含的页面是否从缓冲区读取 true:使用缓冲,false不使用缓冲
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Include_Command.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>Include动作</h1>
    <hr>
    <jsp:include page="date.jsp" flush="false"/>
  </body>
</html>

---7-3 include指令与include动作(标签)--------------------------------------------------

include指令与include动作(标签)比较

        include指令             jsp:include动作

语法格式          :<%@ include file="URL"%>       <jsp:include page="xx.jsp" flush="false"/>

发生作用的时间  :页面转换期间            请求期间

包含的内容    :文件实际内容            页面的输出

转换成的Servlet:主页面和包含页面转换为一个Servlet   主页面和包含页面转换为独立的Servlet

编译时间       :  较慢-资源必须被解析        较快

执行时间       : 稍快                 较慢-每次资源必须被解析

观察Tomcat work directory里生成的servlet文件 

---7-4 forward动作-----------------------------------------------------------------

语法:

  <jsp:forward page="URL" />

  等同于:

  request.getRequestDispatcher("/url").forward(request,response);

login.jsp:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'login.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>系统登录</h1>
    <hr>
    <form name="loginForm" action="forward_action.jsp" method="post">
      <table>
        <tr>
          <td>用户名:</td>
          <td><input type="text" name="username"/></td>
        </tr>
        <tr>
          <td>密码:</td>
          <td><input type="password" name="password"/></td>
        </tr>
        <tr>
          <td colspan="2"><input type="submit" value="登录"/></td>
        </tr>
      </table>
    </form>
  </body>
</html>

forward_action.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Include_Command.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>Forward动作</h1>
    <hr>
    <!--<jsp:forward page="user.jsp"/>-->
    <% 
       request.getRequestDispatcher("user.jsp").forward(request, response);
    %>
    
  </body>
</html>

user.jsp:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'user.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>用户资料</h1>
    <hr>
    <% 
       request.setCharacterEncoding("utf-8");
       String username = "";
       String password = "";
       String email = "";
       if(request.getParameter("username")!=null)
       {
          username = request.getParameter("username");
       }
       if(request.getParameter("password")!=null)
       {
          password = request.getParameter("password");
       }%>
        用户名:<%=username %><br>
        密码:<%=password %><br>  </body>
</html>

---7-5 param动作-------------------------------------------------------------------

 语法:

  <jsp:param name="param Name" value="value">

  常常与<jsp:forward>一起使用,座位起子标签

login.jsp:

  <form name="loginForm" action="doLogin.jsp" method="post">

dologin.jsp:

    <jsp:forward page="user.jsp">

  //添加参数email
      <jsp:param value="admin@123.net" name="email"/>

  //覆盖参数password的值
      <jsp:param value="888888" name="password"/>
    </jsp:forward>

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'dologin.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <jsp:forward page="user.jsp">
      <jsp:param value="admin@123.net" name="email"/>
      <jsp:param value="888888" name="password"/>
    </jsp:forward>
  </body>
</html>

user.jsp:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'user.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    <h1>用户资料</h1>
    <hr>
    <% 
       request.setCharacterEncoding("utf-8");
       String username = "";
       String password = "";
       String email = "";
       if(request.getParameter("username")!=null)
       {
          username = request.getParameter("username");
       }
       if(request.getParameter("password")!=null)
       {
          password = request.getParameter("password");
       }
       if(request.getParameter("email")!=null)
       {
          email = request.getParameter("email");
       }
       
    %>
        用户名:<%=username %><br>
        密码:<%=password %><br>
        电子邮箱:<%=email %><br>
  </body>
</html>
 
原文地址:https://www.cnblogs.com/charles999/p/6704121.html