在JSP中,在"<%"和"%>"之间书写的程序代码成为java程序片。

一个JSP页面中能够有多个java程序片。

要注意的是,在Java程序片中声明的变量在它们所在JSP页面的所用程序片及表达式中都有效。基于此,能够把一个较大的程序片分成几个小的程序片,还可在当中插入HTML语句。以便编写的程序代码更具有可读性。

在程序片中声明的变量仅仅在页面有效。是局部变量,它在不同的客户訪问同一个页面时,此变量是不能共享的。

但假设是在"<%!"和"%>"之间声明的变量就能够在不同的客户之间共享,其有效范围是整个Web应用,在server关闭后变量才会被释放。

用"<%="和"%>"能够直接输出变量或表达式的值。变量或表达式的值将作为一个字符串在浏览器中输出。这样的方法在JSP编程中是比較经常使用的,特别在与HTML标记混合编写时较为经常使用。例如以下代码:

<%@ page contentType="text/html; charset=gb2312" %>
<html>
<body>
<%!
int counter=0;
synchronized void counterFunction()
{
counter++;
}
%>
<%counterFunction();%>
站点计数器<br>
你是第<%=counter %>位訪问者
</body>
</html>

该程序首先在"<%!“和”%>"之间声明了一个计数器变量和计数的方法,计数器变量将在客户之间共享,直至server关闭。

计数方法实际上就是对计数变量做增1处理,在方法的前面加了sychronizedkeyword,这个keyword可防止客户在同一时候调用此方法更改计数变量的值时发生冲突。因此对方法作了串行化处理。

JSP简单练习-一个简单的计数器的更多相关文章

  1. 学习vue就是那么简单,一个简单的案例

    vue是前端兴起的一个javascript库,相信大家都使用过jQuery,虽然vue和jQuery没有可比性,但从熟悉的角度去理解新的东西或许会容易接受一些,有时候由于思想和模式的转变会带来阵痛,但 ...

  2. 一个简单的多线程Python爬虫(一)

    一个简单的多线程Python爬虫 最近想要抓取拉勾网的数据,最开始是使用Scrapy的,但是遇到了下面两个问题: 前端页面是用JS模板引擎生成的 接口主要是用POST提交参数的 目前不会处理使用JS模 ...

  3. CSS布局中一个简单的应用BFC的例子

    什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...

  4. 使用MongoDB和JSP实现一个简单的购物车系统

    目录 1 问题描述  2 解决方案  2.1  实现功能  2.2  最终运行效果图  2.3  系统功能框架示意图  2.4  有关MongoDB简介及系统环境配置  2.5  核心功能代码讲解  ...

  5. 使用Servlet和JSP实现一个简单的Web聊天室系统

    1 问题描述                                                利用Java EE相关技术实现一个简单的Web聊天室系统,具体要求如下. (1)编写一个登录 ...

  6. 一个简单的jsp自定义标签

    学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...

  7. 一个简单的Verilog计数器模型

    一个简单的Verilog计数器模型 功能说明: 向上计数 向下计数 预装载值 一.代码 1.counter代码(counter.v) module counter( input clk, input ...

  8. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  9. 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)

    近期看老罗视频,做了一个简单的用户注冊系统.用户通过网页(JSP)输入用户名.真名和password,Servlet接收后通过JDBC将信息保存到MySQL中.尽管是个简单的不能再简单的东西,但麻雀虽 ...

随机推荐

  1. cdh5.7 做完HA后hive 查询出现异常: expected: hdfs://nameservice

    异常信息如下: select * from b_pt_pr_customer_address_info limit 19; FAILED: SemanticException Unable to de ...

  2. Spring学习笔记(13)——aop原理及拦截器

    原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP将应用系统分为两部分,核心业务逻辑(Core bu ...

  3. Golang 读书

    var a map[string] int  类似Key\Value var( 多个变量,避免多次声明var ) 声明变量 多重赋值 i,j=j,i 匿名变量 _ literal 字面常量   con ...

  4. Codeforces 1197E Culture Code DP

    题意:你有n个俄罗斯套娃,已知每个套娃的容积和体积,问有多少个子集满足以下条件: 1:这个子集是一个极大子集,即不能再添加其它的套娃到这个子集里. 2:子集的套娃之间的间隙和最小. 思路1:线段树优化 ...

  5. rabbitmq一个连接多个信道channel

    https://www.cnblogs.com/eleven24/p/10326718.html

  6. 数据索引文件idx

    数据索引文件idx 数据索引文件idx 数据索引文件idx

  7. 一次CTS引发的网络故障

    接到业务部门通知,A机房(库a)到B机房(库b)之间的数据库服务器之间的网络带宽异常突增,影响公司对外业务的整体带宽.一接到通知,作为数据库管理对所涉及的IP还是比较敏感.第一反应就是可能当时主库产生 ...

  8. tensorflow基础重新巩固

    tensorflow框架整体结构 用张量tensor表示数据:计算图graph表示任务:在会话session中执行context: 通过变量维护状态:通过feed和fetch可以任意的操作(arbit ...

  9. Android processDebugManifest 异常

    1.使用 gradlew processDebugManifest --stacktrace 进行排查; 2.异常: processDebugManifest (Thread[Execution wo ...

  10. linux IPC socket(3)server简单写法

    写server的一些流程总结 一.向内核申请一个socket TCP形式 sock_fd = socket(AF_INET, SOCK_STREAM, ); UDP形式 sfd = socket(AF ...