一、JSP编程介绍

  JSP是实现普通静态HTML和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的Web页面。JSP在第一次运行时会花费很长时间,原因在与其本质还是Servlet,也就是说JSP会由服务器Tomcat自动转换为Servlet后加载运行。

  JSP页面中除了普通的HTML代码外还包含其他三种主要成分:脚本元素、指令和动作。脚本元素用于在JSP页面中嵌入Java代码,指令用于从整体上控制Servlet的结构,动作用来引入现有的组件来控制Web容器的行为。

二、JSP脚本元素

(1)、输出表达式

语法:<%=表达式%>

作用:输出表达式的计算结果

注意事项:表达式中所有的变量必须是已经声明过的变量,%与=号之间不能有空格且表达式后面不需要分号

举例:

 <%for(int i = 1;i < 7; i++){%>
<h <%=i%> >Hello!</h <%=i%> > <br>
<%}%>

(2)、注释

语法:<!--注释-->与<%--注释--%>两种

作用:前者是输出到客户端的注释;后者不输出到客户端,仅表示JSP注释,在运行时这种注释不会转化为HTML的注释即在客户端查看源码时是不可见的。

举例:

 <!--客户端看得到的注释-->
<%--客户端看不到的注释--%>

(3)、声明变量、方法和类

①、声明变量

语法:<%!声明代码%>

注意事项:

1.JSP中声明的变量作用域为整个页面,故只要在页面中声明变量即可无需主义声明与使用的先后顺序,但习惯上我们一般先声明后使用变量。

2.JSP中声明的变量在服务器上为全局变量。我们都知道JSP运行时是自动转化为Servlet,而每个Servlet运行期间在服务器的容器内部仅仅只有一个实例,对于不同的客户端请求会产生不同的线程响应,因此JSP中声明的变量的任何修改均会影响到所有访问该JSP页面的客户端。

举例:

 <%--JSP变量声明--%>
<h1>JSP变量声明</h1>
<%i++; %>
<p>你是第个<%=i %>访问本网站的用户!</p>
<!--JSP声明变量的作用域为整个页面,故声明语句可放在后面.-->
<%!int i=0;%>

②、声明方法

语法:<%!声明代码%>

注意事项:在JSP页面中声明的方法在整个页面中都有效,但在该方法中定义的变量仅在该方法中有效。

举例:

 <%--JSP方法声明--%>
<h1>JSP方法声明</h1>
<%!String sayHello(){
return "Hello";
}%>
<%=sayHello() %>

③、声明类

语法:<%!声明代码%>

注意事项:在JSP页面中声明的类在整个页面中都有效。

举例:

 <%--JSP类声明--%>
<h1>JSP方法声明</h1>
<%!public class sayHello{
boolean county;
sayHello(boolean county){
this.county=county;
}
String Hello(){
if(county)
return "Hello";
else
return "Hi";
}
}%>
<%sayHello sHello = new sayHello(false); %>
<%=sHello.Hello()%>

三、JSP指令

(一)、page指令

Page指令用于定义整个JSP页面的全局属性。一下是一些常用属性:

1.language属性

语法:<%@page language="语言"%>

说明:用于指明JSP脚本使用的编程语言即文件编译语言。目前该属性的属性值只有“java”。

2.contentType属性

语法:<%@page contentType="语言"%>

说明:指定MIME类型和JSP的编码方式

3.pageEncoding属性

语法:<%@page pageEncoding="语言"%>

说明:指定编码方式

用法示例:

 <%@page language="java" contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%> <%--1.指明JSP页面脚本使用的编程语言,即设置编译语言
2.指定MIME的类型及JSP文件的字符编码方式
3.指定JSP文件本身的编码方式--%>

4.import属性

语法:<%@page import="java包"%>

说明:导入Java包,可以只导入一个也可导入多个,导入多个Java包时中间用逗号隔开。

用法示例:

 <%@page import="javax.websocket.Session"%>
<%@page import="java.util.*,java.lang.*" %> <%--导入Java包--%>

5.session属性

语法:<%@page session="true"%>或<%@page session="false"%>

说明:设置JSP页面是否支持会话,默认情况允许会话即session值为true。

 <%@page session="false"%> <%--指明JSP页面是否支持会话(默认支持)--%>

6.errorPage属性

语法:<%@page errorPage="程序"%>

说明:指定当JSP页面程序发生错误时用来处理的程序。

用法示例:

 <%@page errorPage="error.jsp"%> <%--出现错误时由error.jsp处理--%>

7.isThreadSafe属性

语法:<%@page isThreadSafe="true"%>或<%@page isThreadSafe="false"%>

说明:设置JSP文件是否能同时处理多个用户的请求,默认情况一个JSP能处理多个进程,即session值为true。

用法示例:

 <%@page isThreadSafe="false"%> <%--只允许单线程,默认为True即默认允许多线程--%>

(二)、include指令

说明:include指令向JSP页面内嵌入一个文件,改文件可以是HTML文件、JSP文件或其他文本文件。

用法示例:

 <h3><%@include file="copyright.html" %></h3>

(三)、taglib指令

四、JSP动作

JSP动作组件是一些XML语法格式的标记,被用于控制Web容器的行为。利用JSP动作组件可动态地向页面中插入文件、重用JavaBean组件、把用户重定向到另外的页面等。

常见的JSP动作组件有以下几种:

(一)、include动作组件

语法:<jsp:include page="文件名" flush=“true”/>

说明:flush参数必须为true不能用false。

注意事项:include动作组件和include指令元素十分不同。

include动作组件在执行时才对其所包含的文件进行处理,故JSP页面与包含的文件在逻辑上和物理上均是独立的,若对文件进行修改则在运行时就可看到文件修改后的结果。

include指令中包含的文件若发生修改必须重新将JSP页面转译成Java文件才可以看到修改后的内容,否则只能看到修改前的文件内容。

(二)、forward动作组件

语法:<jsp:forword page="网页名称"/>

说明:将浏览器显示的网页导至另一个HTML或JSP网页,客户端看到的地址为A页面的地址而实际内容却是B页面的内容。

注意事项:在使用forward组件之前不能有任何内容已输出到客户端,否则会有意外抛出。而<jsp:forword>标记后的代码将不再执行。

(三)、param动作组件

语法:<jsp:param name="参数名称" value="值"/>

说明:用于传递参数信息,必须配合include和forward动作组件一起使用。

(四)、plugin动作组件

语法:<jsp:plugin type="bean|applet" code="classFileName" codevase="classFileDirectoryName">

说明:执行一个Applet或Bean

(五)、setProperty、getProperty及useBean动作组件(这里简单介绍在JavaBean后再详细记录)

setProperty:<jsp:setProperty>设置JavaBean的属性

getProperty:<jsp:getProperty>输出某个JavaBean的属性

useBean:<jsp:useBean>寻找或实例化一个JavaBean

Java EE JSP编程基础的更多相关文章

  1. Java高并发编程基础三大利器之CountDownLatch

    引言 上一篇文章我们介绍了AQS的信号量Semaphore<Java高并发编程基础三大利器之Semaphore>,接下来应该轮到CountDownLatch了. 什么是CountDownL ...

  2. Java EE JSP内置对象及表达式语言

    一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...

  3. 1. Java EE简介 - JavaEE基础系列

    什么是Java EE? 真的是你理解的那样吗? Java EE, 原名J2EE, 其核心由一系列抽象的标准规范所组成, 是针对目前软件开发中所普遍面临问题的解决方案. 注意以上定义中的"抽象 ...

  4. Java EE - JSP 小结

    Table of Contents 前言 JSP 与 Servlet JSP 初始化参数 脚本元素 page 指令 禁用脚本元素 EL 表达式 EL 函数 taglib 指令 标记 TLD 文件的位置 ...

  5. Java Servlet JSP编程(一)

    最近想学学java编程,java现在的应用还是挺广泛的,有必要学习一下. # index.jsp <%@ page language="java" contentType=& ...

  6. JAVA的网络编程基础概念

    网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协 ...

  7. Java EE.JSP.脚本

    脚本是<%与%>之间Java语言编写的代码块. 1.输出表达式 <%=表达式%>输出表达式的计算结果. 2.注释 1)输出到客户端的注释:<!-comment-> ...

  8. Java EE.JSP.概述

    JSP最终会被转换成标准Servlet,该转换过程一般出现在第一次请求页面时. JSP页面的主要组成部分如下: HTML 脚本:嵌入Java代码 指令:从整体上控制Servlet的结构 动作:引入现有 ...

  9. Java 之 网络编程基础

    一.软件结构 C/S 结构:全称为 Client/Server 结构,是指客户端和服务器结构.常见的程序有微信,QQ,迅雷等软件. B/S 结构:全称 Brower/Server 结构,是指浏览器和服 ...

随机推荐

  1. java 常用类2

    1.1 日期时间类 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2019-04- ...

  2. 登录SQLServer报错:无法连接到DESKTOP-LDJHQGN

    解决方法:下↓↓↓

  3. javascript之promise

    js语言的执行环境是"单线程",即一次只能执行一个任务,如果有多个任务的话,就需要排队,只有前面的一个任务执行结束了,再执行后面的一个任务.于是异步执行就变得非常重要,异步执行之后 ...

  4. java SSM 框架 多数据源 代码生成器 websocket即时通讯 shiro redis 后台框架源码

    A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技 ...

  5. import 本质

    一. 模块:用来从逻辑上来组织python代码(变量,函数,类,逻辑,实现一个功能),本质就是,py结尾的python文件 1.1 导入方法: import module import module1 ...

  6. JavaScript小练习1-控制div属性

    题目 要实现的效果如图所示:查看演示 *** 分析 乍一看还以为十分简单,就是简单的点击button时触发的函数来改变样式值,不过做到后面就开始打脸了--"重置"功能.其实要实现重 ...

  7. 水仙花数(类型:一级、C++)

    题目描述: 输入一个三位数n,判断是否为水仙花数,如果是则输出“YES”,不是则输出“NO”.水仙花数:是指一个3位数,它的每个位上的数字的3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 ...

  8. C++程序设计入门(上) 函数学习

    局部变量和全局变量的访问: 全局变量的作用域时全局,局部变量的作用域是局部,若全局和局部的变量名相同的话,局部变量的改变不会引起全局变量的改变#include<iostream> int ...

  9. mysql千万级数据量根据索引优化查询速度

    (一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经 ...

  10. ionic2添加支付宝插件出现问题

    安装本地路径插件正常  编译正常  在打开支付页面时候 就报这个错 在手机app点击无效 错误信息: ERROR Error: Uncaught (in promise): Error: No pro ...