• JSP基本原理


    JSP的基本原理:

      jsp的本质是servlet。jsp通过在标准的HTML页面中嵌入java代码,其静态的部分无需Java程序控制,只有那些需要从数据库读取或需要

    动态生成的的页面内容,才使用Java脚本控制。

      jsp页面内容:

      >静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同。

      >动态部分:受Java程序控制的内容,这些内容由Java程序来控制。

    <%@ page language="java" contentType="text/html; charset=UTF-8" language = "java" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>这是一个jsp页面代码</title>
    </head>
    <body>
    欢迎进入<br>
    现在是时间是:
    <%out.println(new java.util.Date()); %>
    </body>
    </html>


    复制代码
    <%@ page language="java" contentType="text/html; charset=UTF-8"  language = "java" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>这是一个jsp页面代码</title>
    </head>
    <body>
    欢迎进入<br>
    现在是时间是:
    <%out.println(new java.util.Date()); %>
    </body>
    </html>
    复制代码

    注意:JSP的本质依然是servlet,每个JSP页面就是一个Servlet实例——JSP页面有系统编译成Servlet,Servlet再负责响应用户请求。

    JSP的工作原理:

        Client            →发出请求→        JSP Server(如果该JSP页面第一次收到请求,先编译JSP文件,生成对应的Servlet,如果该JSP页面已有对应的

              ←返回标准的HTML页面←    的Servlet,这根据请求动态生成标准的HTML页面。注:每次都会根据请求动态生成HTML文档。)

    1、JSP文件必须在JSP服务器内运行。

    2、JSP文件必须生成servlet才能执行。 

    3、每个JSP页面的第一个访问者速度很慢,因为必须等待JSP编译成Servlet。

    4、JSP页面的访问者无须安装任何客户端,甚至不需要可以运行的Java的运行环境,因为JSP页面输送到客户端的是标准HTML页面。

    JSP注释:

      JSP注释格式: <%-- 注释内容 --%>

      而HTML注释格式:<!-- 注释内容 -->

      HTML的注释可以通过源代码查看到,但JSP的注释是无法通过源代码查看到的。这表名JSP注释不会被发送到客户端。

    JSP声明:

      JSP声明用于声明变量和方法。JSP声明的语法格式如下:

      <%!  声明部分   %>  

    <%@ page language="java" contentType="text/html; charset=UTF-8" language = "java" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>这是一个jsp页面</title>
    </head>
    <!-- 下面是JSP声明部分 -->
    <%!
    // 声明一个变量
    public int count = 0 ;
    // 声明一个方法
    public String info()
    {
    return "hello : " + count ;
    }
    %>
    <body>
    <!-- 每次刷新count的值都会加1 -->
    <%
    out.println(++ count) ;
    %><br/>
    <%
    out.println(info()) ;
    %>
    </body>
    </html>


    复制代码
    <%@ page language="java" contentType="text/html; charset=UTF-8"  language = "java" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>这是一个jsp页面</title>
    </head>
    <!-- 下面是JSP声明部分 -->
    <%!
    // 声明一个变量
    public int count = 0 ;
    // 声明一个方法
    public String info()
    {
    return "hello : " + count ;
    }
    %>
    <body>
    <!-- 每次刷新count的值都会加1 -->
    <%
    out.println(++ count) ;
    %><br/>
    <%
    out.println(info()) ;
    %>
    </body>
    </html>
    复制代码

    输出JSP表达式:

      输出表达式值的语法格式: <%=表达式>

      输出表达式将转换成Servlet里面的输出语言。

    JSP脚本:

      JSP脚本中可以放置任何可执行性语句,所以可以充分利用Java语言的功能,例如连接数据库和执行数据库。

      例子:

    <%@page import="java.sql.*"%>
    <%@page language="java" contentType="text/html; charset=UTF-8" errorPage=""%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <head>
    <title>连接数据库脚本测试</title>
    </head>
    <body>
    <table bgcolor = "yellow" border = "1" width = "300px">
    <%
    // 注册数据库驱动
    Class.forName("com.mysql.jdbc.Driver") ;
    // 获取数据库连接
    Connection conn = DriverManager.getConnection(
    "jdbc:mysql://127.0.0.1:3306/select_test","root","hezuoan") ;
    // 创建Statement
    Statement stmt = conn.createStatement() ;
    // 查询
    ResultSet rs = stmt.executeQuery("select * from student_table") ;
    while(rs.next())
    {
    %>
    <tr>
    <td><%=rs.getString(1)%> </td>
    <td><%=rs.getString(2)%> </td>
    <td><%=rs.getString(3)%> </td>
    </tr>
    <%
    }
    %>
    </table>
    </body>


    复制代码
    <%@page import="java.sql.*"%>
    <%@page language="java" contentType="text/html; charset=UTF-8" errorPage=""%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <head>
    <title>连接数据库脚本测试</title>
    </head>
    <body>
    <table bgcolor = "yellow" border = "1" width = "300px">
    <%
    // 注册数据库驱动
    Class.forName("com.mysql.jdbc.Driver") ;
    // 获取数据库连接
    Connection conn = DriverManager.getConnection(
    "jdbc:mysql://127.0.0.1:3306/select_test","root","hezuoan") ;
    // 创建Statement
    Statement stmt = conn.createStatement() ;
    // 查询
    ResultSet rs = stmt.executeQuery("select * from student_table") ;
    while(rs.next())
    {
    %>
    <tr>
    <td><%=rs.getString(1)%> </td>
    <td><%=rs.getString(2)%> </td>
    <td><%=rs.getString(3)%> </td>
    </tr>
    <%
    }
    %>
    </table>
    </body>
    复制代码

      (执行SQL查询需要使用MySQL驱动程序,将驱动的JAR文件放在Tomcat的lib路径下。)

    JSP的三个编译指令:

    > page :该指令是针对当前页面的指令。

    > include :用于指定包含另一个页面。

    > taglib :用于定义和访问自定义标签。

    格式如下:<%@ 编译指令名 属性名="属性值"... %>

    一、page 指令:

      page指令通常位于JSP页面的顶端,一个JSP页面可以使用多个page指令。语法格式如下:

      <%@page

      [language="Java"]

      [extends= "package.class"]

      [import = "package.class|package.*..."]

      [session= "true|false"]

      [buffer = "none|8KB|size Kb"]

      [autoFlush = "true|false"]

      [isThreadSafe = "true|false"]

      [info = "text"]

      [errorPage = "relativeURL"]

      [contentType = "mimeType[; charset = characterSet]"|"text/html ; charset = ISO-8859-1"]

      [pageEncoding = "ISO-8859-1"]

      [isErrorPage = "true|false"]

      %>

      各指令的属性定义:

      language : 声明当前JSP页面使用的脚本语言的种类,通常默认是Java 。 

      extends  : 指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。

      import : 导入包。 (下面几个包是系统默认导入的:java.lang.* ; javax.servlet.*; javax.servlet.jsp.*;javax.servlet.http.* ;)

      session : 设定这个JSP页面是否需要HTTP Session。

        buffer : 指定输出缓冲区的大小。

      autoFlush : 当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。

      info : 设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取。

      errorPage : 指定错误处理页。

      isErrorPage : 设置本JSP页面是否为错误处理程序。

      contentType : 用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型。  

              默认的MIME类型是 text/html ;默认的字符集类型为ISO-8859-1.

      PageEncoding :是定生成网页的编码字符集。

    二、include指令

      使用include指令,可以将一个外部文件嵌入到当前JSP文件中。语法格式:

      <%@include file = "relativeURLSpec"%> 

  • 相关阅读:
    java基本数据类型
    解决Eclipse导入项目工程出现The project was not built since错误
    解决java错误“编码 GBK 的不可映射字符”
    helloworld每一个程序员的开始!
    java环境变量path也配置了,但还是显示javac不是内部或外部命令的解决办法
    WAS8.5.5根据CVE-2019-4279漏洞升级
    ansible 配置数据源源头为163
    升级openssh
    ansible-1 参数常用模块
    xlsxwriter模块详解
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/4969130.html
Copyright © 2020-2023  润新知