初始JSP
什么是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变量或表达式%>
小栗子:
- <body>
- <%
- int[] value = { 60, 70, 80 };
- for (int i : value) {
- //out.print(i);
- %>
- <%=i%>
- <%
- }
- %>
- </body>
需要注意的是:在Java中语法的规定中,每一条语句末尾必须使用分号代表结束。而在JSP中使用表达式输出数
据时,不能再表达式结尾处添加分号。
问答题:如何实现在JSP页面中计算两个数的和,并将结果输出显示?
小栗子:
- <body>
- <%
- int A=10,B=20;
- int C=A+B;
- %>
- 数字<%=A %>和<%=B %>的求和结果为:<%=C %>
- </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的更多相关文章
- Servlet模板,一个供新手参考的模板
由于这学期老师的进度是刚开始教JavaSE部分,而我的进度比较快,所以买了3本javaee的书,我根据自己的基础,选择了合适的开发实践,另外两本书都和框架相关,我自认为我的web基础还不是很牢固,所以 ...
- 今天我们来认识一下JSP的九大内置对象
虽然现在基本上我们都是使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的.像request.response.session这些对象,即便使用 ...
- JSP 9大内置对象详解
一.内置对象特点: 1.由JSP规范提供,不用编写者实例化. 2. 通过Web容器实现和管理 3.所有JSP页面均可使用 4.只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%> ...
- 使用MongoDB和JSP实现一个简单的购物车系统
目录 1 问题描述 2 解决方案 2.1 实现功能 2.2 最终运行效果图 2.3 系统功能框架示意图 2.4 有关MongoDB简介及系统环境配置 2.5 核心功能代码讲解 ...
- JSP九大内置对象及四个作用域
九大对象: 内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用 1-out: javax.servlet.jsp.JspWriter类型,代表输出流的对象.作用 ...
- jsp上传图片实时显示
jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...
- JSP内置对象及常用方法
jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...
- Servlet和JSP学习指导与实践(一):Servlet API初探
前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再 ...
- 我JSP学习心得1
老师布置了一项作业,说是要按着老师的要求写,但我觉得只要是技术分享的心得就是好的,不论是不是所要求的内容. 由于和几个人在外面给别人搭建网站,项目需要学习了jsp有用到了javascript,这里有一 ...
随机推荐
- 第 8 章 容器网络 - 058 - flannel 概述
flannel 概述 flannel 是 CoreOS 开发的容器网络解决方案. flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 h ...
- c# 静态构造函数与私有构造函数共存
在使用静态构造函数的时候应该注意几点: 1.静态构造函数既没有访问修饰符,也没有参数.因为是.NET调用的,所以像public和private等修饰符就没有意义了. 2.是在创建第一个类实例或任何静态 ...
- MySQL utf8 和 utf8mb4 的区别
utf-8 时变化长度的编码,储存一个code point 需要1~4个字节. 然而,mysql的utf8只存储最多3个字节per code point. 所以,utf8字符集不能存储所有的unico ...
- 决策论 | 信息论 | decision theory | information theory
参考: 模式识别与机器学习(一):概率论.决策论.信息论 Decision Theory - Principles and Approaches 英文图书 What are the best begi ...
- 亚马逊商品页面的简单爬取 --Pyhon网络爬虫与信息获取
1.亚马逊商品页面链接地址(本次要爬取的页面url) https://www.amazon.cn/dp/B07BSLQ65P/ 2.代码部分 import requestsurl = "ht ...
- WPF触发器(Trigger)
WPF触发器(Trigger.DataTrigger.EventTrigger) WPF中有种叫做触发器的东西(记住不是数据库的trigger哦).它的主要作用是根据trigger的不同条件来自动更改 ...
- POJ-3693/HDU-2459 Maximum repetition substring 最多重复次数的子串(需要输出具体子串,按字典序)
http://acm.hdu.edu.cn/showproblem.php?pid=2459 之前hihocoder那题可以算出最多重复次数,但是没有输出子串.一开始以为只要基于那个,每次更新答案的时 ...
- hadoop ssh 端口-ssh-copy-id详解
ssh-copy-id详解 http://www.blogdaren.com/post-1815.html 服务器时常需要配置无密码的登录方式,最一般的设置方式如下: 使用ssh-keygen和ssh ...
- vue给元素动态添加class
<p class="answerNum2" v-text="iteme.sel_num" :class="{letter: num }" ...
- PHP工厂模式的使用场景,使用方法
所谓工厂模式和生产有关.生产什么呢?生产出来的是一个实例对象.通过什么设备生产?通过一个工厂类生产simpleFactoty.怎么生产呢?工厂类调用自身静态方法来生产对象实例static functi ...