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>

  1. <%@ 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>

  1. <%@ 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>

  1. <%@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"%>

JSP基本原理的更多相关文章

  1. jsp 基本原理

    jsp 的本质是 servlet,当用户请求 servlet 的时候,servlet 利用输出流动态输出 HTML 内容. 由于包括了大量的 HTML 标签.大量的静态文本等,导致 servlet 开 ...

  2. JSP学习(1)---JSP基本原理

    一.JSP的本质 其本质是Servlet,web应用中的每个jsp页面都会由servlet容器生成对应的servlet. 在tomcat中,jsp生成的servlet在work文件夹下: 原jsp文件 ...

  3. 请求与响应编码及jsp基本原理

    1.请求转发和请求包含 (1)请求转发: this.getServletContext().getRequestDispatcher("").forward(request,res ...

  4. jsp笔记1(基本原理与语法)

    web.xml文件配置管理的范围: 1.配置jsp 2.配置和管理Servlet 3.配置和管理Listener 4.配置和管理Filter 5.配置标签库 6.配置jsp属性 7.配置和管理JAAS ...

  5. JSP基本知识

    JSP基本原理: JSP本质是Servlet(一个特殊的Java类),当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面.JSP通过在标准的HTML页面中嵌入Java代 ...

  6. 01.JSP基础语法

        本章主要讲解Java Web与JSP的入门内容,适合有JSP或Java Web基础的读者学习. 1.Web应用与web.xml文件 (1)Java Web应用程序的结构     Java We ...

  7. 深入理解JSP

    JSP(Java server page)是Java EE规范最基本成员,他是Java Web开发的重点知识,尽管我们一直在用.但其原理知之甚少.今天重点研究一些JSP核心内容以及其工作原理. JSP ...

  8. JavaWeb基础—JSP

    一.什么是JSP JSP 全称是 Java Server Pages,是一种开发动态web资源的技术 在原HTML上添加JAVA脚本(灵魂工程师,为页面添加灵魂),可以说 jsp = html + j ...

  9. JavaWeb开发学习(一)-JavaWeb开发概述

    1.Web相关概念 Web程序也就是一般所说的网站,由服务器.客户端浏览器以及网络组成.Web程序的好处是使用简单,不需要安装.学习,有一台电脑.一根网线就可以使用.Web程序不是一般意义上的网站.网 ...

随机推荐

  1. HDU 3333 Turing Tree --树状数组+离线处理

    题意:统计一段序列[L,R]的和,重复元素只算一次. 解法:容易看出在线做很难处理重复的情况,干脆全部讲查询读进来,然后将查询根据右端点排个序,然后离散化数据以后就可以操作了. 每次读入一个数,如果这 ...

  2. Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17718579),请尊重他人的辛勤劳动成果,谢谢! 在And ...

  3. esc安装数据库 sqlserver mssql

    在服务器里面设置虚拟内存为:2G以上就可以安装了

  4. IOS证书/私钥/代码签名/描述文件

    1.   相关资源 (1)   钥匙串程序(常用工具->钥匙串),用于创建证书请求.安装证书.导出私钥等 (2)   IOS开发中心:https://developer.apple.com/de ...

  5. GridControl控件绑定RepositoryItemImageComboBox 作为下拉框使用

    如果,时间长时了,已前做过的东西,都记不得了,所以记录一下. 废话不多说. 1.拖出gridview控件,然后将字段绑定上去 2.将要做下拉框的控件加入RepositoryItemImageCombo ...

  6. onresize方法

    resize()方法可以写在当前页面包含的所有js里

  7. C语言 字符串操作两头堵模型

    //字符串操作两头堵模型练习 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #inc ...

  8. SOAP和WSDL的一些必要知识(转)

    原文地址:SOAP和WSDL的一些必要知识 SOAP和WSDL对Web Service.WCF进行深入了解的基础,因此花一些时间去了解一下是很有必要的. 一.SOAP(Simple Object Ac ...

  9. win7桌面移到其他盘

    打开"计算机",点"用户"--"Administrator"点进去,或者,打开我的文档,然后右键点"桌面""属 ...

  10. 教你写一个Android可快速复用的小键盘输入控件

    引子 在Android项目开发中特别是一些稍大型的项目,面对需求文档的时候你经常会发现很多地方用到了同样的组件,但是又略有不同.比如这个: 右边是一个小键盘输入板,左边当焦点不同的时候分别用右边的小键 ...