什么是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. ComfyUI进阶篇:ComfyUI核心节点(三)

    ComfyUI核心节点(三) 前言: 学习ComfyUI是一场持久战.当你掌握了ComfyUI的安装和运行之后,会发现大量五花八门的节点.面对各种各样的工作流和复杂的节点种类,可能会让人感到不知所措. ...

  2. Windows批处理文件(.bat和.cmd)

    cmd文件和bat文件的区别 从文件描述中的区别是,cmd文件叫做:Windows命令脚本,bat文件叫:批处理文件,两者都可以使用任意一款文本编辑器进行创建.编辑和修改,只是在cmd中支持的命令要多 ...

  3. WOE编码与IV值

    参考: WOE与IV值浅谈 机器学习-变量筛选之IV值和WOE 0. Introduction WOE (weight of evidence): 证据权重 IV (information value ...

  4. Mac mysql 5.7.x 设置服务开机自启动

    在终端输入 sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist 输入以下内容 <?xml version="1.0" e ...

  5. nuxt3正确使用keepalive页面缓存组件缓存

    最近使用nuxt@3.x版本做SEO优化项目比较多,之前也踩坑过,所以记录一下在 nuxt3 中路由缓存的正确使用方法,本人也之前在GitHub社区中提交过反馈问题,最后是在 3.8.2 版本解决了路 ...

  6. react懒加载,减少首屏加载时间

    最近在写一个react-ant-admin的集成框架用于快速搭载中后台项目.其中遇到很多问题,最重要的应该是访问速度了.我就想 react 可不可以和 vue 一样用路由懒加载来减少首页渲染所花费的时 ...

  7. THM-Skynet-Writeup

    通过学习相关知识点:攻破Linux目标机器并完成提权操作. 部署并渗透目标机器 step1 使用Nmap扫描端口 nmap -p- -sC -sV -T4 -v 10.10.164.81 139/44 ...

  8. 3. set 的使用

    3. set 的使用 因为在实际工程中,我们不会将具体文件全部写出来,这是一件费力不讨好的事情. 3.1 set 定义变量 在 CMake 文件中,默认的变量数据类型是字符串,如果要用别的类型,需要进 ...

  9. 部分解决 | ocrmypdf对中文pdf进行ocr识别后存在多余空格

    1.问题 ocrmypdf安装采用的是在windows安装方法具体看 https://media.readthedocs.org/pdf/ocrmypdf/latest/ocrmypdf.pdf 由于 ...

  10. vue小知识~eventBus

    eventBus是指在向全区暴露这个vue对象,此时在任意一个地方都可以使用vue相关的实例 在main.js配置 Vue.prototype.$bus=new Vue() 此时整个应用都可以使用vu ...