一、JSP页面的基本结构

在传统的HTML页面文件里增加Java程序片和JSP标签就构成了一个JSP页面文件。

一个JSP页面可由5种元素组合而成;

1、普通的HTML标记符

2、Jsp标签。如指令标签,动作标签

3、变量和方法的声明

4、Java程序片

5、Java表达式

我们称后三部分为JSP的脚本部分

当server上的一个JSP页面被第一个请求运行时。server上的JSP引擎首先将JSP页面文件转译成一个Java文件,再将这个Java文件编译成生成字节码文件。然后通过运行字节码文件响应客户的请求。这个 字节码文件的任务就是:

1、把JSP页面中普通的HTML标记符号交给客户的浏览器运行显示。

2、JSP标签、数据和方法声明、Java程序片由server负责运行。将须要显示的结果发送给客户的浏览器。

3、Java表达式由server负责计算,并将结果转化为字符串,然后交给客户的浏览器负责显示

二、变量和方法的声明

在 “<%!”和”%>”标记符号之间声明变量和方法。在之间放置Java的变量声明语句。

变量的类型能够是Java语言同意的不论什么数据类型。

我们将这些变量称为JSP页面的成员变量。

在其之间声明的变量在整个JSP页面内都有效,由于JSP引擎将JSP页面转译成Java文件时,将这些变量作为类的成员变量。这些变量的内存空间直到server关闭才被释放。当多个客户请求一个JSP页面时,JSP引擎为每一个客户启动一个线程,这些线程由JSP页面成员变量操作的结果,都会影响到其它用户。

example

<%@ page contentType="text/html;charset=GB2312"%>
<HTML>
<BODY BGCOLOR=cyan>
<FONT Size=4>
<%!
int i=0;
%>
<%
i++;
%>
<p>您是第
<%=i%>
个訪问本站的客户。
<p> </FONT>
</BODY>
</HTML>

执行结果

JSP页面的基本结构 及声明变量的更多相关文章

  1. JSP页面的基本结构

    一:一个JSP页面由以下基本元素组成. (1)HTML标签 (2)CSS (3)变量和方法 (4)Java代码段 (5)JSP动作和指令 (6)其他脚本元素(如Javascript) 二:JSP的基本 ...

  2. JSP页面元素

    jsp-->Java Server Page jsp 页面元素: 静态内容 2.  指令 <%@ page contentType=”text/html” %>  设置指定页面内容类 ...

  3. 网站开发进阶(六)JSP两种声明变量的区别

    JSP两种声明变量的区别 在JSP中用两种声明变量的方法,一种是在<%! %>内,一种是在<% %>内.他们之间有什么区别呢?我们直接看一个JSP文件来理解. 代码如下: &l ...

  4. Jsp页面中动态的引入另一个jsp,jsp:include路径是变量的实现

    1 问题描述 在页面搭建时,会有这样的需求,希望局部页面动态的引用另一个jsp.这里的"动态"的意思引用的jsp的路径是个变量.举个例子,我们希望局部页面可能是page1.jsp或 ...

  5. JSP两种声明变量的区别

    感谢大佬:https://blog.csdn.net/tiercel2008/article/details/11553899?utm_source=distribute.pc_relevant.no ...

  6. 使用type="redirect"重定向,传递List等变量到jsp页面的问题

    Struts2在提交表单的时候,使用「type="redirect"」重定向到相应的jsp页面. Action中的List表单是无法传到相应的jsp页面. 我猜测是因为List作为 ...

  7. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  8. 提交一个变量或数组到另一个jsp页面

        注意一:提交一个变量到另一个jsp页面,用hidden的input 另一个页面用request.getParameter();获取 注意二:提交一个数组到另一个页面,可以用相同的input的n ...

  9. JSP中声明变量、方法

    在JSP页面中声明局部变量,全局变量,方法等 代码示例: <%@ page language="java" contentType="text/html; char ...

随机推荐

  1. servlet(3) - servlet知识点 - 小易Java笔记

    1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...

  2. mybatis generator 生成带中文注释的model类

    将org.mybatis.generator.interal.DefaultCommentGenerator类的addFieldComment方法重写,代码如下: public void addFie ...

  3. sql ---- count 误区

    select count(字段名) from table group by 字段; 分组后的内容统计. count统计的字段是 不包括空的数据.

  4. Python与Mysql交互

    #转载请联系 在写内容之前,先放一张图,bling- 这张图算是比较详细的表达出了web开发都需要什么.用户访问网页,就是访问服务器的网页文件.这些网页文件由前端工程师编写的.服务器通常用nginx/ ...

  5. Django基础之路由系统

    Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. ...

  6. [thinkphp] 公共头部底部如何传递数据

    分组底下有一个公共模板文件夹 Modules/Index/Tpl/public/ 如何传递数据给模板呢? 在  入口文件/Lib/Action/  中创建类CommonAction.class.php ...

  7. CF 1003B Binary String Constructing 【构造/找规律/分类讨论】

    You are given three integers a, b and x. Your task is to construct a binary string s of length n=a+b ...

  8. 1953 Problem B #103. 子串查找

    #include<stdio.h> #include<string.h> main() { char a[100],b[100]; int n,k,i; gets(a); ge ...

  9. LCIS最长公共上升子序列

    最长公共上升子序列LCIS,如字面意思,就是在对于两个数列A和B的最长的单调递增的公共子序列. 这道题目是LCS和LIS的综合. 在LIS中,我们通过两重循环枚举当序列以当前位置为结尾时,A序列中当前 ...

  10. [BZOJ2527]Meteors

    整体二分挺好玩的...学一发 这个询问显然是可以二分的,但每次都二分就会T爆,所以我们有了“整体”二分 每次处理一些询问,要求这些询问的答案一定在$[l,r]$中 先把$l$到$mid$的操作实施,那 ...