JSP(一):初识JSP
在Servlet中,我们多次用到了jsp页面,今天就来仔细聊聊JSP。
一、概念
JSP全名是Java Server Pages,可理解为Java服务端页面,是一种动态网页开发技术,其本质是一个简化的Servlet设计,实现了在Java中使用HTML标签。JSP和Servlet都是在服务器端执行的。
二、为什么要用JSP?
在我们最开始使用Servlet给浏览器响应信息的时候,使用的是PrintWriter对象的println()方法,在Servlet里拼接完一个HTML页面的代码,每次在修改完Servlet代码后,还需要重启服务(本地开发环境),比较麻烦。
JSP页面很好的解决了这一问题,可以直接在jsp页面中使用Java代码,每次修改完也不用重启服务(本地开发环境),比较灵活。
三、语法
一个JSP页面包含以下几个组成部分:静态内容,指令,表达式,小脚本,声明,注释。
1、JSP指令
JSP指令主要包含三个指令,一是page指令,二是include指令,三是taglib指令。
1.page指令,通常位于jsp页面的顶端,同一个页面可以有多个page指令。
<%@ page 属性1="属性值" 属性2="属性值1,属性值2"...属性n="属性值n" %>
其中常用的属性有language,import,contentType。
language,表示制定jsp页面使用的脚本语言,默认值是java。
import,表示可以通过该属性来引用脚本语言中使用到的类文件,无默认值。
contentType,用来指定jsp页面所采用的编码格式,默认值是text/html,ISO-8859-1。
2.include指令,将一个外部文件嵌入到当前的jsp文件中,同时解析这个页面中的jsp语句。
<%@ include file="文件路径" %>
3.taglib指令,使用标签库定义新的自定义标签,在 jsp页面中使用自定义标签。
<%@ taglib prefix="标签库的前缀" uri="标签库的位置" %>
2、JSP注释
在jsp页面上,有三种注释方法,如下
1.HTML注释
<!-- html注释 -->
这种注释在客户端可见。
2.jsp的注释
<%-- jsp注释 --%>
这种注释在客户端不可见。
3.jsp脚本注释
使用双斜杠//表示单行注释,使用/**/表示多行注释,这与java类似。
3、JSP脚本
jsp脚本是在jsp页面中执行的java代码,语法如下
<% java代码 %>
4、JSP声明
主要是在jsp页面中定义变量或方法,语法如下
<%! java代码 %>
5、JSP表达式
在jsp页面中执行的表达式,其中,表达式不以分号结束,语法如下
<%=表达式 %>
四、JSP生命周期
jsp页面的本质是一个servlet,同样是在服务端执行,因此其生命周期与servlet的生命周期一样,同样是包含四个过程:(1)实例化;(2)初始化;(3)调用;(4)销毁。
第一阶段由容器实例化,第二阶段调用_jspInit()方法进初始化,第三阶段调用_jspService()方法,第四阶段调用_jspDestroy()方法进行销毁。在tomcat的安装路径中,可以在 work\Catalina\localhost 这个路径下找到最开始编写.jsp文件已经被转换成了.java文件和编译后的.class文件。
五、编写Demo总结
1、新建一个Maven项目
新建Maven项目的步骤不在复述了,具体可以参照之前的文章。
2、新建两个jsp页面
新建第一个jsp页面,如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 引入外部jar包,使用逗号分隔 -->
<%@ page import="java.util.*,java.text.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp页面</title>
</head>
<body>
<%-- 这是一个jsp注释,在客户端不可见 --%>
<%
// 这是一个jsp脚本
// 这是jsp脚本注释
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date();
String nowstring = sdf.format(date);
%>
<%!
// 这是一个jsp声明
String name = "小川94"; // 可以定义变量
// 也可以声明一个方法
int add (int a, int b) {
return a + b;
}
%>
<p>现在是北京时间:<%=nowstring %></p> <!-- 这是一个jsp表达式 -->
<br/>
<p>10加7的和是:<%=add(10, 7) %></p>
<!-- include指令,file属性表示文件路径 -->
<%@ include file="pageDemo2.jsp" %>
<!-- taglib指令, prefix属性是标签库的前缀,uri属性是标签库的位置-->
<%--
<%@ taglib prefix="prefixOfTag" uri="uri" %>
--%>
</body>
</html>
新建第二个jsp页面,验证include指令,如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h3>这是pageDemo2页面的三级标题</h3>
</body>
</html>
3、部署测试
效果如下图
JSP(一):初识JSP的更多相关文章
- JSP之->初识JSP
JSP 引用百度百科的介绍: JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在 ...
- 第二章 初识JSP
第二章 初识JSP 一.JSP简述 1.是JSP JSP是指在HTML中嵌入Java脚本语言.全称(Java Server Pages) 当用户通过浏览器访问Web应用时,使用JSP容器对请求的J ...
- 初识jsp
复习: 1.servlet生命周期: (1)默认是以第一次请求的时候创建并初始化Servlet,而且只做一次.(构造函数 init()) web.xml(配置后,是可以达到在服务启动后,立刻进行ser ...
- J2EE之初识JSP
上篇博客已经简介了下Servlet.从上篇博客中能够看到.Servlet获得返回来的数据后.显示给client时,须要不断的拼串.从而构成完整的html页面,这就在无形中加大了程序猿的压力和劳动力.而 ...
- 初识JSP,第一天
1.什么JSP java Server Page java 服务端的页面,它和servlet 一样可以提供动态的html 响应. 不同的是 servlet 以 java 代码 为主 jsp 以html ...
- [J2EE基础]初识JSP和Servlet
近期须要用到J2EE,就開始学习与J2EE相关的知识了. JSP是一种Javaserver端技术,它用于在网页上显示动态内容. Tomcat相关知识 JSP的运行过程 JSP的页面构成元素 JSP的凝 ...
- 初识JSP:JSP的注释、脚本、声明、表达式
1.JSP的注释 在HTML当中,如果使用传统的注释我们可以在客户端,也就是网页上右键查看源代码里面看得到该注释,但是JSP注释无法在客户端里看到.源码里面会只会看到JSP注释的地方空出来. 使用方法 ...
- JSP页面以及JSP九大隐式对象
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...
- jsp学习---使用jsp和JavaBean实现超简单网页计算器
一.需求 如题,用jsp实现一个超简单的网页计算器. 二.实现 1.效果图 1)初始界面: 2)随便输入两个数进行相乘: 3)当除数为零时提示报错: 2.代码 Calculator.java pack ...
随机推荐
- 为Spring Cloud Config插上管理的翅膀
最近一致在更新Spring Cloud Config的相关内容,主要也是为这篇埋个伏笔,相信不少调研过Spring Cloud Config的用户都会吐槽它的管理能力太弱.因此,就有了下面为讲推荐的这 ...
- Spring Boot入门(13)自制音乐平台
经过笔者这几天的辛勤劳作(其实就是苦逼地码代码),一个新的网站已经上线啦!该网站是用Spring Boot工具写的,主要实现的功能如下: 根据歌曲名称和音乐平台搜索歌曲,并实现歌曲的在线播放: 歌 ...
- 跨域学习笔记2--WebApi 跨域问题解决方案:CORS
自己并不懂,在此先记录下来,留待以后学习... 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨 ...
- [转]docker之Dockerfile实践
本文转自:https://www.cnblogs.com/jsonhc/p/7767669.html 上一篇介绍了Dockerfile中使用的指令,现在开始进行指令实践 先查看下本地的镜像,选一个作为 ...
- 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...
- [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- 提高 JavaScript 开发效率的高级 VSCode 扩展!
原文:提高 JavaScript 开发效率的高级 VSCode 扩展! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. Quokka.js Quokka.js 是一个用于 JavaSc ...
- MongoDB复合索引详解
摘要: 对于MongoDB的多键查询,创建复合索引可以有效提高性能. 什么是复合索引? 复合索引,即Compound Index,指的是将多个键组合到一起创建索引,这样可以加速匹配多个键的查询.不妨通 ...
- HDU3038(KB5-D加权并查集)
How Many Answers Are Wrong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- 构造方法为private与类修饰符为final
构造方法为private的:在这个类外1:不能继承这个类2:不能用new来产生这个类的实例 在这个类内:1:可以继承这个类2:可以用new来产生这个类的实例 类修饰符为final的:在这个类外1:不能 ...