一、Java Bean行文

1.重点说明

Java Bean行为是一组与Java Bean相关的行为,包括useBean行为、setProperty行为、getProperty行为等。Java Bean就是普通的Java类。Java Bean类非常简单,只有私有属性与对应的getter方法和setter方法。(注意:对于boolean类型的属性,习惯上一般把getter方法写成isXxx(),而不是getXxx())

useBean行为属性
    属性名          取值范围 描述
id       合法的Java变量名

指明Java Bean对象的名称。

JSP中可以使用该名称引用该Java Bean对象。

class         Java Bean类的全名 Java Bean类的全名。
scope          

page,

request,

session,

application

该Java Bean对象的范围。

当为page时,只在该JSP内有效。

当为request时,只在当前的request中有效。

当为session时,对当前用户有效。

当为application时,当前Web应用程序内有效。默认为page。

2.代码实践

scope实现各种计数器

Counter.java

 package com.bean;

 public class Counter {

     private int count;         //计数器

     public int getCount(){       //每访问一次,计数器自加1
return ++count;
}
public void setCount(int count){
this.count = count;
}
}

Counter.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'Counter.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<!-- 定义一个session范围内的计数器,记录个人访问信息 -->
<jsp:useBean id="personCount" class="com.bean.Counter" scope="session" />
<!-- 定义一个application范围内的计数器,记录所有人的反问信息 -->
<jsp:useBean id="totalCount" class="com.bean.Counter" scope="application" />
<div align="center">
<form action="page/Counter.jsp" method="get">
<fieldset style="width:300">
<legend>计数器</legend>
<table align="center" width="400">
<tr>
<td>您的访问次数:
</td>
<td>
<!-- 获取个人的访问次数 -->
<jsp:getProperty property="count" name="personCount"/>
</td>
</tr>
<tr>
<td>总共的访问次数:
</td>
<td>
<!-- 获取所有人的访问次数 -->
<jsp:getProperty property="count" name="totalCount"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="刷新">
</td>
</tr>
</table>
</fieldset>
</form>
</div>
</body>
</html>

3.效果截图

二、<jsp:plugin/>嵌入Applet

1.重点说明

Java Applet是运行在客户端浏览器里的Java小程序。JSP提供了一组plugin行为简化嵌入Applet的操作。plugin行为包括<jsp:plugin/><jsp:params/><jsp:param/><jsp:fallback/>。其中<jsp:plugin/>用于在JSP中定义Java Applet,并声明Applet的宽度和高度等属性;<jsp:params/>用于定义一组一对多的参数;<jsp:param/>用于定义单个的参数;<jsp:fallback/>用于定义不支持Applet时的替代信息。

2.程序实践

Plugin.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'Plugin.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<table align="center" bgcolor="#999999" cellpadding="1">
<tr>
<td bgcolor="#FFFFFF">
<jsp:plugin
code="Graph.class"
codebase="http://java.sun.com/applets/jdk/1.4/demo/applets/GraphLayout/"
type="applet" width="500" height="400">
<jsp:params>
<jsp:param value="joe-food,joe-dog,joe-tea,table-plate/50"
name="edges"/>
</jsp:params>
<jsp:fallback>您的浏览器不支持Java Applet</jsp:fallback>
</jsp:plugin> </td>
</tr>
</table>
</body>
</html>

3.效果截图

这里不知道怎么被阻止了。

三、<jsp:directive/>行为

<jsp:directice/>行为相当于JSP指令。<jsp:directive.page/>行为相当于<%@ page%>指令,<jsp:directive.include/>行为相当于<%@ include%>指令,<jsp:directive.taglib/>行为相当于<%@ taglib%>指令。

注意:现在的Java Web开发平台更倾向于使用directive行为而不使用JSP指令。这是因为<jsp:directive/>行为比JSP指令更整洁,可读性更好。

Java开发之JSP行为的更多相关文章

  1. Java开发之JSP指令

    一.page指令 page指令是最常用的指令,用来说明JSP页面的属性等.JSP指令的多个属性可以写在一个page指令里,也可以写在多个指令里.但需要注意的是,无论在哪个page指令里的属性,任何pa ...

  2. Java开发之Servlet之间的跳转

    一.转向(Forward) 1.要点说明 转向是通过RequestDispatcher对象的forward()方法来实现的.RequestDispatcher可以通过HttpServletReques ...

  3. JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解

    Servlet的缺点 开发人员要十分熟悉JAVA 不利于页面调试和维护(修改,重新编译) 很难利用网页设计工具进行页面设计(HTML内容导入到servlet中,用PrintWriter的对象进行输出) ...

  4. javaweb开发之jsp

    一.WEB应用的目录结构 通常我们是在IDE中创建web应用程序,IDE自动为我们实现了WEB的目录结构,下面来看如何徒手创建一个WEB程序. 首先来看一下Tomcat自带的一个web应用的目录结构 ...

  5. Java开发之javaEE(java2EE)的介绍,java软件工程师初步阶段知识

    1. 为什么需要JavaEE 我们编写的JSP代码中,由于大量的显示代码和业务逻辑混淆在一起,彼此嵌套,不利于程序的维护和扩展.当业务需求发生变化的时候,对于程序员和美工都是一个很重的负担. 为了程序 ...

  6. Java开发之abstract 和 interface的区别

    Java开发abstract 和 interface的区别 java开发里面经常会用到虚函数和接口,这两者的区别是什么呢? abstract: 子类里面只能继承一个父类 interface: 子类可以 ...

  7. Java开发之@PostConstruct和@PreConstruct注解

    从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的 ...

  8. Java开发之Servlet生命周期

    Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器结束的时候结束生命周期.无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servle ...

  9. JAVA开发之Eclipse常用的快捷键

    Eclipse是我们常用的java开发编辑器,它支持很多有用但又不太为人所知的快捷键组合.通过这些组合快捷键我们可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升.甚至有一次笔者去参加一个IT ...

随机推荐

  1. Planetary.js:帮助你构建超炫的互动球体效果

    Planetary.js 是一个 JavaScript 库,用于构建互动球体效果.它使用 D3 和 TopoJSON 解析和渲染地理数据.Planetary.js 采用了基于插件的架构,即使是默认的功 ...

  2. Echo.js – 简单易用的 JavaScript 图片延迟加载插件

    Echo.js 是一个独立的延迟加载图片的 JavaScript 插件.Echo.js 不依赖第三方库,压缩后不到1KB大小. 延迟加载是提高网页首屏显示速度的一种很有效的方法,当图片元素进入窗口可视 ...

  3. 2016年末闲谈iOS开发的未来

    移动开发市场潮流涌动,好多人都会问iOS开发的前景这样的问题,今天我就瞎扯一下我眼中的未来,纯主观非理性,爱看看. Swift怎么样 Swift很好,就像你的前女友一样好. 得益于swift的开源,以 ...

  4. CSS的简介

    CSS(Cascading Style Sheets):层叠样式表 层叠:一层一层的 样式表:有很多的属性和属性值 css将网页内容和显示样式进行分离,提高了显示功能 CSS通常被称为CSS样式表或层 ...

  5. java 实现https请求

    java 实现https请求 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从 ...

  6. JAVA Web 实现会话跟踪的技术笔记

    1.HTTP协议无状态:客户端的请求与服务器的响应所发生的一系列行为简单的说是客户发送了请求,服务器就给客户端响应,它们彼此之间都没有记录下来.如: 顾客与自动售货机 普通顾客(非会员)与商场 2.c ...

  7. 如何为Swift进行宏定义

    这阵子一直在自学Swift, 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码 ...

  8. IOS开发之待探究随录

    设置导航条的问题

  9. yii2使用多个数据库的案例

    作者:白狼 出处:http://www.manks.top/article/yii2_%E5%88%86%E5%BA%93%E5%88%86%E8%A1%A8_config 本文版权归作者,欢迎转载, ...

  10. ThreadLocal源码分析

    1.概述 ThreadLocal,可以理解为线程的局部变量,作用就是为每一个使用该变量的线程都提供一个变量值的副本,每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突. ThreadLo ...