什么是JSP

1、JSP(Java Server Pages):在HTML中嵌入Java脚本代码

静态内容是JSP页面中的静态文本,其基本是HTML文本,与Java和JSP语法无关。

例子:

运行结果:

JSP指令元素

1、 JSP指令元素的作用是通过设置指令中的属性,在运行时,控制JSP页面的某些特性。

2、JSP指令一般以“<%@”开始,以“%>”结束。

在上述栗子中 属于JSP指令的代码片段为:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

page:指令是针对当前页进行设置的一种指令,通常位于JSP页面的顶端,在一个JSP页面中可以包含多个

page指令。需要注意的是,page指令只对当前JSP页面有效。

page语法:

<%@ page 属性1=“属性值1” 属性2=“属性值2”........... %>

JSP容器将使用默认指令属性值。如果需要对page指令中的一个属性设置多个属性值,期间以逗号隔开。

<%@ page 属性1=“属性值1” 属性2=“属性值2”,“属性值3”........... %>

page常用属性:

属性详细介绍:

(1)、language属性:page指令中的language属性用于指定当前JSP页面所采用的脚本语言,当前JSP版本

只能使用Java作为脚本语言。该属性可以不设置,因为JSP默认就是采用Java作为脚本。

(2)、import属性:page指令中的import属性在实际开发中使用比较频繁。通过import属性可以在JSP文件

的脚本片段中引用类。如果一个import属性引入多个类,需要在多个类之间用逗号隔开。

格式如下:

<%@ page import="java.util.* , java.text.* "%>

<%@ page import="java.util.* " %>

<%@ page import="java.text.* "%>

(3)、contentType属性:该属性的设置在开发过程中是非常重要的,而且经常被用到。中文乱码一直是困扰

开发者的一个问题,而contentType属性可以对编码格式进行设置。这个设置告诉Web容器在客户端

浏览器上以任何格式及使用何种编码方式显示响应的内容。

格式如下:

<%@ page contentType=" Text/html ; charset=UTF-8 "%>

2、JSP脚本元素

在JSP页面中,将小脚本(scriptlet)、表达式(expression)、声明(declaration)统称为JSP脚本元素。

1、什么是小脚本

小脚本可以包含任意的Java片段,形式比较灵活,通过在JSP页面中编写小脚本可以执行复杂的操作和

业务处理。编写方法是将Java程序片段插入<%%>标记中。

例如:

这段代码中使用了JSP的一个内置对象out,out.print()方法用于页面中输出数据。

2、什么是表达式

表达式是对数据的表示,系统将作为一个值进行计算显示。当需要在页面中输出一个Java变量或

着表达式值时。

语法:

<%=java变量或表达式%>

小栗子:

  1. <body>
  2. <%
  3. int[] value = { 60, 70, 80 };
  4. for (int i : value) {
  5. //out.print(i);
  6. %>
  7. <%=i%>
  8. <%
  9. }
  10. %>
  11. </body>

需要注意的是:在Java中语法的规定中,每一条语句末尾必须使用分号代表结束。而在JSP中使用表达式输出数

据时,不能再表达式结尾处添加分号。

问答题:如何实现在JSP页面中计算两个数的和,并将结果输出显示?

小栗子:

  1. <body>
  2. <%
  3. int A=10,B=20;
  4. int C=A+B;
  5. %>
  6. 数字<%=A %>和<%=B %>的求和结果为:<%=C %>
  7. </body>

3、JSP声明

在编写JSP页面程序时,有时需要为 Java脚本定义成员变量和方法,这时就需要使用JSP声明实现。

语法:

<%!---------%>

定义一个方法:

4、JSP的注释

1、<!--这是HTML注释(客户端查看源代码可以看到源代码)-->

2、<%--这是JSP注释(客户端无法看到源代码)--%>

3、<% // 使用预定格式将日期转换为字符串%>

JSP执行原理

1、JSP执行原理图

译后的class文件中:JSPService中主要存放于,转换后的jsp代码。

1、用户通过浏览器访问jsp的时候,tomcat 负责把jsp转换为Java文件。

jsp声明------》Java文件的成员方法。

jsp脚本-------》Java文件中的_jspService方法的一段代码。

jsp表达式---》Java文件中的_jspService方法的一段代码  out.print(表达式);

普通html代码--》Java文件的_jspService方法的一段代码  out.print(表达式)。

2、服务器再把Java文件编译成为class文件。

3、服务器执行class文件。

首先对生成的Java类进行实例化,接着调用实例化后对象的_jspService方法输出html给浏览器

4、浏览器渲染html数据。

第一次请之后,Web容器可以重用以经编译好的字节码文件。

注意:

如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译。

附加小栗子

问题:求出2000-2013期间的闰年:

运行结果:

初始JSP的更多相关文章

  1. Servlet模板,一个供新手参考的模板

    由于这学期老师的进度是刚开始教JavaSE部分,而我的进度比较快,所以买了3本javaee的书,我根据自己的基础,选择了合适的开发实践,另外两本书都和框架相关,我自认为我的web基础还不是很牢固,所以 ...

  2. 今天我们来认识一下JSP的九大内置对象

    虽然现在基本上我们都是使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的.像request.response.session这些对象,即便使用 ...

  3. JSP 9大内置对象详解

    一.内置对象特点: 1.由JSP规范提供,不用编写者实例化. 2. 通过Web容器实现和管理 3.所有JSP页面均可使用 4.只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%> ...

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

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

  5. JSP九大内置对象及四个作用域

    九大对象: 内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 1-out: javax.servlet.jsp.JspWriter类型,代表输出流的对象.作用 ...

  6. jsp上传图片实时显示

    jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...

  7. JSP内置对象及常用方法

    jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...

  8. Servlet和JSP学习指导与实践(一):Servlet API初探

    前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再 ...

  9. 我JSP学习心得1

    老师布置了一项作业,说是要按着老师的要求写,但我觉得只要是技术分享的心得就是好的,不论是不是所要求的内容. 由于和几个人在外面给别人搭建网站,项目需要学习了jsp有用到了javascript,这里有一 ...

随机推荐

  1. 雷林鹏分享:jQuery EasyUI 树形菜单 - 使用标记创建树形菜单

    jQuery EasyUI 树形菜单 - 使用标记创建树形菜单 一个树形菜单(Tree)可以从标记创建.easyui 树形菜单(Tree)也可以定义在 元素中.无序列表的 元素提供一个基础的树(Tre ...

  2. 利用Anaconda完美解决Python 2与python 3的共存问题

    前言 现在Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试. 如何在系统中同时共存 Pyt ...

  3. android -------- Data Binding的使用(一)

    Google推出自己官方的数据绑定框架Data Binding Library 已经很久了,很多企业也在使用 面试的时候也有问到,所以也去学习了一番,特来分享一下,希望对各位有所帮助 描述: Data ...

  4. Confluence 6 编辑一个空间的配色方案

    空间默认继承全局的配色方案.但是,如果你是空间管理员的话,你可以对默认继承的全局方案进行调整,使用自定义的配色方案. 为一个空间修改配色方案: 进入空间后,然后从边栏的底部选择 空间工具(Space ...

  5. re正则表达式方法

    目录 1.python正则匹配 1.1 re.search 正则表达式 1.2 re.match() 正则表达式 1.3 re.match与re.search的区别 1.4 检索和替换 1.5 正则表 ...

  6. SQL SERVER select,update,delete使用表别名

    [SELECT] select * from 表名 表别名 [UPDATE] update 表别名 set 表别名.列=值 from 表名 表别名 where 条件 [DELETE] delete 表 ...

  7. org.json.JSONException: JSONObject["shophours"] not found.

    没有这个元素造成的.问题代码: value = jsonObject.get(entry).toString(); 分析原因: json中没有这个key,更没有这个key所对应的值 解决办法:判断一下 ...

  8. 论raw_input与input之间的缠缠绵绵

    例子1:py2.7中,raw_input输入整数,返回的是str. input1=raw_input("raw_input:") print(type(input1)) print ...

  9. reflow 和 repaint

    Reflow(渲染):对于DOM结构中的各个元素都有自己的盒模型,浏览器根据各种样式(浏览器的.开发人员定义的等)来计算,并根据计算结果将元素放到它该出现的位置,这个过程称之为reflow. refl ...

  10. mybatis批量插入的方式

    批量插入数据经常是把一个集合的数据一次性插入数据库,只需要执行一次sql语句,但是批量插入通常会报框架版本号的错误,本人就遇到 com.alipay.zdal.parser.exceptions.a: ...