一、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. 部分用户间接性访问不了linux服务器解决方法

    linux的/etc/sysctl.conf中应设置 net.ipv4.tcp_tw_reuse = net.ipv4.tcp_tw_recycle = 参考文章: https://ieevee.co ...

  2. 【转】:Oracle Linux6.9下安装Oracle 11.2.0.4.0及psu补丁升级

    为方便截图,本文操作都在vmware虚拟机上完成. 目录: 1.操作系统安装 2.数据库安装 3.PSU补丁升级卸载   part1 操作系统安装 Oracle (Enterprise) Linux ...

  3. 初试mininet(可选PyCharm)

    目录 0x00 Mininet 0x01 Important classes, methods, functions 0x02 Sample 0x04 run in shell 0x05 Output ...

  4. 关于alias同时使用多个命令小记。

    为了方便自己快速使用命令,接触了一下alias.在使用多个命令时,一般有两种方式.各有不同 根据需求选择. 直接上代码: 1.alias Name='(date;pwd;cmd1;cmd2) 写法简洁 ...

  5. Windows Redis 取消保护模式C#进行访问

    运行redis服务程序和客户端程序设置即可. config set protected-mode “no”

  6. 关于python文件问题

    一.python内部的首行命令 #!/usr/bin/env python #_*_coding:utf8_*_ 第一条命令用于Linux系统中的./命令,用于声明用什么Python解释器.第二条命令 ...

  7. python 爬虫基础知识(继续补充)

    学了这么久爬虫,今天整理一下相关知识点,还会继续更新 HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法 ...

  8. C语言中的if与else if

    今天发现一个比较不理解的代码,是关于else if这个判断语句的代码.代码如下 #include<stdio.h> ; int main(void) { ) { printf(" ...

  9. 项目开发设计模式理解之MVC模式

    项目开发设计模式之MVC模式: M model 模型层 V view 视图层 C control 控制器 MVC模式在B/S架构下使用很广泛的软件设计模式,分成三个相对独立的模块构成,model+vi ...

  10. 20155222 2016-2017-2 《Java程序设计》实验三

    20155222 2016-2017-2 <Java程序设计>实验三 1 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单 ...