什么是JSP

★ JSP是Java Server Page的缩写,是由Sun公司倡导,许多公司参与,于1999年推出的一种Web服务设计标准。

★ JSP基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站。

★ JSP以Java语言为基础,具有动态页面与静态页面分离,能够脱离硬件平台的束缚以及编译后运行等优点,已经成为开发动态网站的主流技术之一。

▲ 需要强调的一点是:要想真正地掌握JSP技术,必须有较好的Java语言基础,以及基本的HTML语言方面的知识。

安装配置JSP运行环境

tomcat配置:

这部分可以参考:idea 的Tomcat 的简单配置

JDk配置:

这部分可以参考:JDK的安装和配置

JSP页面

JSP页面简介

将在第2章详细讲解JSP页面的结构及有关语法,本节简单了解JSP页面即可。 简单地说,一个JSP页面中可以有普通的HTML标记和JSP规定的JSP标记,以及通过标记符号“<%”,“%>”之间加入的Java程序片。

例:一个简单的JSP页面

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor = pink>
<h1>这是一个简单的JSP页面</h1>
<% int i, sum=0;
for(i=1;i<=100;i++){
sum=sum+i;
}
%>
<p style="font-family:宋体;font-size:36;color:blue">
1到100的连续和是:<%=sum %>
</p></body></HTML>



JSP页面的编码

指定JSP页面的编码(有关细节在第二章讨论)

 <%@ page pageEncoding = "utf-8" %>

** JSP页面的保存**

(1) 扩展名是.jsp。

(2) 保存类型选择为“UTF-8”(因为JSP页面指定的编码是utf-8)。

设置Web服务目录

JSP页面文件保存到Tomcat服务器的某个Web服务目录中,远程的用户才可以通过浏览器访问该Tomcat服务器上的JSP页面。 人们常说的一个网站,实际上就是一个Web服务目录。

根目录

D:\ apache-tomcat-9.0.26\webapps\Root

访问JSP页面的URL格式是:

http://Tomcat服务器的IP地址(或域名):端口/JSP页面的名字)

必须省略Web根目录的名字root。

http://127.0.0.1:8080/example1_1.jsp

webapps下的Web服务目录

在webapps下新建子目录ch1,那么ch1就成为一个Web服务目录。

http://127.0.0.1:8080/ch1/example1_1.jsp

注 在webapps下新建Web服务目录,不必重新启动Tomcat服务器。

新建Web服务目录

可以将Tomcat服务器所在计算机的某个目录(非webapps下的子目录)设置成一个Web服务目录,并为该Web服务目录指定虚拟目录,即隐藏Web服务目录的实际位置,用户只能通过虚拟目录访问Web服务目录中的JSP页面。

假设要将 D:\Book\zh 以及 C:\wang 作为Web服务目录,并让用户分别使用apple和cloud虚拟目录访问Web服务目录D:\Book\zh和C:\wang下的JSP页面

打开conf文件夹中的主配置文件:server.xml,找到出现的部分(接近server.xml文件尾部处),然后在的前面加入:

<Context path="/apple" docBase="D:\Book\zh" debug="0" reloadable="true"/>
<Context path="/cloud" docBase="C:\wang" debug="0" reloadable="true"/>

server.xml修改后,必须重新启动Tomcat服务器。

xml文件是区分大小写的,不可以将<Context>写成<context>。

相对目录

Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。比如,我们可以在Web服务目录D:\Book\zha下再建立一个子目录image,将example1_1.jsp文件保存到image中。那么可以在浏览器的地址栏中输入http://127.0.0.1:8080/apple/image/example1_1.jsp

来访问example1_1.jsp。

JSP运行原理

当服务器上的一个JSP页面被第一次被用户请求执行时

  • Tomcat服务器根据JSP页面产生成一个Java文件,并编译这个Java文件生成字节码文件,然后执行字节码文件响应用户的请求。
  • ●而当这个JSP页面再次被请求执行时,Tomcat服务器将直接执行字节码文件来响应用户。

注: 在Web设计中,“用户”(“客户”)一词通常指用户(客户)端计算机上驻留的浏览器。

注: 如果对JSP页面进行了修改、保存,那么Tomcat服务器会生成新的字节码文件。

字节码文件的主要工作是:

(1)把JSP页面中的HTML标记符号(页面的静态部分)交给客户端浏览器负责显示;

(2)负责处理JSP标记,并将有关的处理结果(用字符串形式)发送到客户端浏览器;

(3)执行“<%”和“%>”之间的Java程序片(JSP页面中的动态部分),并把执行结果(用字符串形式)交给客户端浏览器显示;

(4)当多个用户请求一个JSP页面时,Tomcat服务器为每个用户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应用户的请求。这些线程由Tomcat服务器来管理,将CPU的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文件。

JSP 与Java Servlet的关系

在JSP技术出现之前,Web应用开发人员就是自己编写Servlet类,并负责编译生成字节码文件、复制这个字节码文件到服务器的特定目录中,以便服务器使用这个Servlet类的字节码,创建一个servlet来响应用户的请求。

●Java Servlet就是编写在服务器端创建对象的Java类,习惯上称之为Servlet类,Servlet类的对象习惯上称之为一个servlet(第6章讲述)。

● Java Servlet的最大缺点是不能有效地管理页面的逻辑部分和页面的输出部分,为了克服Java Servlet的缺点,Sun公司用Java Servlet作为基础,推出了Java Server Page。JSP技术就是以Java Servlet为基础,提供了Java Servlet的几乎所有好处,当用户请求一个JSP页面时,Tomcat服务器自动生成Java文件、编译Java文件,并用编译得到的字节码文件在服务器端创建一个servlet。

● 有些Web应用可能只需要JSP+Javabean就能设计得很好(第5章讲解Javabean),但是,对于某些Web应用,就可能需要JSP+Javabean+servlet来完成(第7章讲解MVC模式),即需要服务器再创建一些servlet对象,配合JSP页面来完成整个Web应用程序的工作。

HTML与JavaScript

HTML

HTML,Hyper Text Markup Language(超文本标记语言)是用来编写html页面(俗称的网页)的语言。

HTML不体现数据的组织结构,只是描述数据的显示格式或提交方式。

目前的HTML大约有一百多个标记(这些标记由浏览器负责解释执行),每个标记(不区分大小写)都用于体现怎样显示数据或怎样提交数据。

<html><body bgcolor = yellow>
<center>
<H1> 张小三
<H2> 男 </H2>
</H1>
<H2> 李翠花
<H3> 女 </H3>
</H2>
<center>
</body></html>



** JavaScript**

JavaScript(简称JS)是一种解释型的脚本语言(和Java语言没有关系),由浏览器负责解释执行。JavaScript常被用来美化网页的效果、添加一些动态的显示效果(如滚动的文字)。可以在JSP页面里使用script标记插入JavaScript的代码,这些JavaScript的代码由客户的浏览器负责解释执行。

例子2,在JSP页面中使用script标记插入JavaScript的代码计算了1-100的连续和,并显示了客户端浏览器的时间(即浏览器所驻留的计算机的时间),注意,这些JavaScript的代码完全由浏览器负责执行。

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor = cyan>
<script> <!--JavaScript(JS)标记 -->
var sum = 0;
var i = 1;
for(i =1;i<=100;i++) {
sum = sum+i;
}
document.write("<h1>1-100连续和是:"+sum+"<br></h1>");
var userTime = new Date();
var hour = userTime.getHours();
var minute =userTime.getMinutes();
var second = userTime.getSeconds();
var millisecond = userTime.getMilliseconds();
document.write("<h2>浏览器时间:"+
hour+":"+minute+":"+second+":"+millisecond+"<br></h2>");
</script>
</body></HTML>

本文参考耿祥义老师的书籍《JSP实用教程》,仅用作学习交流,如有侵权等可联系删除。

欢迎关注公众号:愚生浅末。

第1章-JSP 简介的更多相关文章

  1. Java Web程序设计笔记 • 【第2章 JSP基础】

    全部章节   >>>> 本章目录 2.1 JSP 简介 2.1.1 JSP 概述 2.1.2 开发第一个 JSP 页面 2.1.3 JSP 处理流程 2.1.4 实践练习 2. ...

  2. Windows程序设计(第五版)学习:第二章 Unicode简介

    第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为C ...

  3. JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. 《深入浅出Node.js》第1章 Node简介

    @by Ruth92(转载请注明出处) 第1章 Node简介 一.Node的起源 高性能Web服务器的要点:事件驱动.非阻塞I/O. 选择JavaScript的原因:高性能.符合事件驱动.没有历史包袱 ...

  5. 第一章 C++简介

    第一章  C++简介 1.1  C++特点 C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言,C++模板支持的泛型编程. 1.2  C语言及其编程 ...

  6. 1.JSP 简介及工作原理

    1.JSP 简介 JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在传统的网页H ...

  7. <算法图解>读书笔记:第1章 算法简介

    阅读书籍:[美]Aditya Bhargava◎著 袁国忠◎译.人民邮电出版社.<算法图解> 第1章 算法简介 1.2 二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要\(l ...

  8. 雷林鹏分享:JSP 简介

    JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开 ...

  9. 《gradle 用户指南中文版》 第1章、简介

    第1章.简介 目录 1.1 关于本用户指南 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具. 这里我们将介绍Gradle,我们认为gradle让java项 ...

  10. 第1章WCF简介(WCF全面解析读书笔记2)

    第1章 WCF简介 面向服务架构(SOA)是近年来备受业界关注的一个主题,它代表了软件架构的一种方向.顺应SOA发展潮流,微软于2006年年底推出了一种新的分布式通信框架Windows Communi ...

随机推荐

  1. wireshark查看https通讯

    前言 https在原有的http基础上增加了了一个TLS/SSL层,https的通讯过程是加密的,如果想用wireshark仔细分析TLS/SSL层,需要借助服务器证书公私钥或者用浏览器截取密钥: 接 ...

  2. PS工具的基本使用

    常见的图片格式: 切片工具的使用 1.用切片选中图片 2.导出切片 3.切片悬着工具 可以选择指定 切片框 删除. 点击图层 切图 清除切片 基于参考线的切片 切图插件Cutterman

  3. 重磅来袭!MoneyPrinterPlus一键发布短视频到视频号,抖音,快手,小红书上线了

    MoneyPrinterPlus开源有一段时间了,已经实现了批量短视频混剪,一键生成短视频等功能. 有些小伙伴说了,我批量生成的短视频能不能一键上传到视频号,抖音,快手,小红书这些视频平台呢?答案是必 ...

  4. 什么情况下会使用array.reduce函数

    当业务需要从一个数组里求出某项的和的时候. 1.for遍历 var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] var resulte = 0; for (let inde ...

  5. 新一代Java高性能构建工具Maven-mvnd【实践可行版】

    Maven-mvnd介绍 Maven 的优点是稳定可靠,在绝大多数的项目上工作良好,社区生态很完善,几乎所有的 Java 开发者都在用.Maven 的缺点是,对于大一点的项目来说,构建太慢了.有时候只 ...

  6. 【VMware VCF】VMware Cloud Foundation Part 02:部署 Cloud Builder。

    VMware Cloud Builder 是用于构建 VMware Cloud Foundation 第一个管理域的自动化部署工具,通过将一个预定义信息的 Excel 参数表导入到 Cloud Bui ...

  7. 制作KubeVirt镜像

    目录 制作KubeVirt镜像 1. 准备磁盘文件 2. 编写Dockerfile 3. 构建镜像 4. 上传镜像到仓库(可选) 5. 导出镜像 6. 虚拟机yaml文件 7. 启动虚拟机 8. 启动 ...

  8. docker 概念,安装,启动,运行

    docker概念,安装,启动,运行模式 docker的概念 镜像(image) 模板,可以通过模板来创建容器服务,tomcat镜像===>run==>tomacat01容器(提供服务),通 ...

  9. Jmeter参数化3-正则表达式提取

    如果你想要将jmeter上个接口返回的参数值传到下个接口请求参去,可用正则表达式来提取传递 1.首先得到jmeter接口的json返回结果 2.组件路径:线程组->右键添加->后置处理器- ...

  10. 在Python中使用sqlalchemy来操作数据库的几个小总结

    在探索使用 FastAPI, SQLAlchemy, Pydantic,Redis, JWT 构建的项目的时候,其中数据库访问采用SQLAlchemy,并采用异步方式.数据库操作和控制器操作,采用基类 ...