• JSP笔记01——尝试


    JSP ————> servlet

    我的第1个Java Web应用程序——index.jsp

    我的第2个Java Web应用程序——welcome-file

    我的第3个Java Web应用程序——conf/server.xml

    我的第4个Java Web应用程序——jsp page

    我的第5个Java Web应用程序——jsp 脚本

    我的第6个Java Web应用程序——jsp 声明

    我的第7个Java Web应用程序——JSP 表达式 

    我的第8个Java Web应用程序——JSP页面生命周期

    我的第9个Java Web应用程序——我的乘法口诀表!

    1

    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
     </head>
     <body>
      <h1>???????</h1>
     </body>
    </html>
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
             version="2.4">
    </web-app>

    2

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
             version="2.4">
             <welcome-file-list>
                 <welcome-file>/index.jsp</welcome-file>
             </welcome-file-list>
    </web-app>

    3

    4

    jsp=java server page

     

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" %>
    
    <html>
        <body>
            <h1 align="center">啤酒推荐</h1>
            <p>
            <%
                List styles = (List)request.getAttribute("styles");
                Iterator it = styles.iterator();
                while (it.hasNext()) {
                    out.print("<br>try: " + it.next());
                }
            %>
        </body>
    </html>

     

    5

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" %>
    
    <html>
        <body>
            <h1 align="center">啤酒推荐</h1>
            <p>
            <%
                List styles = (List)request.getAttribute("styles");
                Iterator it = styles.iterator();
                while (it.hasNext()) {
                    out.print("<br>try: " + it.next());
                }
            %>
            <%
                out.print("<br /><br />今天天气貌似不错!");
                // out是一个内置的对象!
            %>
        </body>
    </html>

    6

    两种声明方式的差异。参考:http://www.cnblogs.com/zengmiaogen/archive/2012/04/15/2450414.html

    我们既可以在<%%>中声明变量,也可以在<%!%>中声明变量,

    那么,这两种声明方式有什么区别呢?事实上,<%!%>相当于类的实例域,而<%%>相当于方法体。

    // TO-DO

    7

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" %>
    
    <html>
        <body>
            <p>this is a simple test</p>
            <%!
                String words = "this is a simple test.";
                int sum(int x, int y) {
                    return x + y;
                }
            %>
            <p>words=<%=words%></p>
            <p>3+4=<%=sum(3,4)%></p>
        </body>
    </html>

    8

     

    当我们访问jsp页面的时候,jsp引擎(web容器)首先判断是否是第一次请求...

     

    这个时候我就想,要是可以直接看到它编译出来的字节码就好了,那么到哪里查看呢?——答案是在tomcat的work目录下,不仅有字节码,还有源代码,我们查看一下上一节的代码。

    /*
     * Generated by the Jasper component of Apache Tomcat
     * Version: Apache Tomcat/7.0.77
     * Generated at: 2017-06-09 10:07:20 UTC
     * Note: The last modified time of this file was set to
     *       the last modified time of the source file after
     *       generation to assist with modification tracking.
     */
    package org.apache.jsp;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import java.util.*;
    
    public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {
    
    
                String words = "this is a simple test.";
                int sum(int x, int y) {
                    return x + y;
                }
            
      private static final javax.servlet.jsp.JspFactory _jspxFactory =
              javax.servlet.jsp.JspFactory.getDefaultFactory();
    
      private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
    
      private volatile javax.el.ExpressionFactory _el_expressionfactory;
      private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
    
      public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
        return _jspx_dependants;
      }
    
      public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
        if (_el_expressionfactory == null) {
          synchronized (this) {
            if (_el_expressionfactory == null) {
              _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
            }
          }
        }
        return _el_expressionfactory;
      }
    
      public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
        if (_jsp_instancemanager == null) {
          synchronized (this) {
            if (_jsp_instancemanager == null) {
              _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
            }
          }
        }
        return _jsp_instancemanager;
      }
    
      public void _jspInit() {
      }
    
      public void _jspDestroy() {
      }
    
      public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
            throws java.io.IOException, javax.servlet.ServletException {
    
        final javax.servlet.jsp.PageContext pageContext;
        javax.servlet.http.HttpSession session = null;
        final javax.servlet.ServletContext application;
        final javax.servlet.ServletConfig config;
        javax.servlet.jsp.JspWriter out = null;
        final java.lang.Object page = this;
        javax.servlet.jsp.JspWriter _jspx_out = null;
        javax.servlet.jsp.PageContext _jspx_page_context = null;
    
    
        try {
          response.setContentType("text/html;charset=utf-8");
          pageContext = _jspxFactory.getPageContext(this, request, response,
                      null, true, 8192, true);
          _jspx_page_context = pageContext;
          application = pageContext.getServletContext();
          config = pageContext.getServletConfig();
          session = pageContext.getSession();
          out = pageContext.getOut();
          _jspx_out = out;
    
          out.write("
    ");
          out.write("
    ");
          out.write("<html>
    ");
          out.write("    <body>
    ");
          out.write("    	<p>this is a simple test</p>
    ");
          out.write("    	");
          out.write("
    ");
          out.write("    	<p>words=");
          out.print(words);
          out.write("</p>
    ");
          out.write("    	<p>3+4=");
          out.print(sum(3,4));
          out.write("</p>
    ");
          out.write("    </body>
    ");
          out.write("</html>");
        } catch (java.lang.Throwable t) {
          if (!(t instanceof javax.servlet.jsp.SkipPageException)){
            out = _jspx_out;
            if (out != null && out.getBufferSize() != 0)
              try {
                if (response.isCommitted()) {
                  out.flush();
                } else {
                  out.clearBuffer();
                }
              } catch (java.io.IOException e) {}
            if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
            else throw new ServletException(t);
          }
        } finally {
          _jspxFactory.releasePageContext(_jspx_page_context);
        }
      }
    }

    9

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" %>
    
    <html>
        <body>
            <p>这是我的乘法口诀表!</p>
    
            <%
                for (int i = 1; i <= 9; ++i) {
                    for (int j = 1; j <= i; ++j) {
                        out.print(i + " * " + j + " = " + i*j + "   ");
                    }
                    out.print("<br />");
                }
            %>
    
        </body>
    </html>

     看完视频后修改了一下,&nbsp;是空格占位符

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8" %>
    
    <html>
        <body>
            <p>这是我的乘法口诀表!</p>
            
            <%!
                void printTable() {
                    for (int i = 1; i <= 9; ++i) {
                        for (int j = 1; j <= i; ++j) {
                            out.print(i + " * " + j + " = " + i*j + "&nbsp;&nbsp;&nbsp;&nbsp;");
                        }
                        out.print("<br />");
                    }
                }
            %>
    
            <%
                printTable();
            %>
    
        </body>
    </html>

    10什么是内置对象

    11 jsp有哪些内置对象

    12 jsp内置对象的官方文档

  • 相关阅读:
    开发人员创建智能客户端的十大理由
    OpenStack 学习资料总结
    VirtualBox启用嵌套VTx/AMDV
    element ui table 表尾合计行 错位优化
    群友酒方,夜夜十次郎
    跨域 Better
    Unity 重命名一个字段,同时不丢失其序列化的值
    C++ static 变量
    编译安装apache2.4
    centos设置crontab定时执行shell脚本
  • 原文地址:https://www.cnblogs.com/xkxf/p/6971980.html
Copyright © 2020-2023  润新知