zoukankan      html  css  js  c++  java
  • 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内置对象的官方文档

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/xkxf/p/6971980.html
Copyright © 2011-2022 走看看