JDK+Tomcat搭建JSP运行环境--JSP基础

一、搭建JSP运行环境之前需要了解的基本知识

      配置JSP运行环境之前,我们需要了解JSP的运行机制。只有了解JSP运行机制后,我们才能知道为什么要搭建JSP运行环境?如何去搭建JSP运行环境?为什么要配置Tomcat、JDK?

JSP(Java Sever Page)即Java服务器页面,它是基于Java平台的Web服务器上的页面。JSP执行原理如下:

 

 

  客户端请求jsp页面,服务器就会找到该JSP,把它转换成servlet的Java文件,编译后得到.class文件,然后加载到内存中执行,最后把执行的结果响应到客户端。了解JSP的运行原理后,我们知道JSP程序片断最终会转换为JAVA程序,而编译JAVA程序我们需要安装JDK。JDK提供了编译JAVA文件的机制,我们知道JDK下的javac指令指向一个JAVA文件执行后,会将.java文件编译成.class文件,它是JAVA程序的中间文件。而这个中间文件是计算机不能直接识别的,需要由JVM(Java Virtual Ma)进行解释后形成机器语言后,计算机才能识别并执行的。JRE是运行JAVA程序所必须的环境集合,它包括Java虚拟机、 Java核心类库以及支持文件,所以除了安装JDK外我们需要去安装JRE。

  JSP是用来编写动态网页的,所谓动态网页“动态”一词主要指的是"交互性"。动态网页中不仅含有HTML标记,而且含有可以执行的程序代码,动态网页能够根据不同的输入和请求动态生成返回的页面,例如常见的BBS、留言板、聊天室等就是用动态网页来实现的。这和静态网页是有明显不同的,静态网页内容是静态不变的,使用静态网页,如果要修改网页内容,就必须修改源代码,然后重新上传到服务器上。下面是静态网页和动态网页的工作原理。

静态网页工作原理:

动态网页工作原理:

动态网页和静态网页的核心区别是:是否在服务器端执行。动态网页中的某些脚本只能在服务器端运行,而静态网页中的任何脚本都不能在服务器端运行。动态网页中可以同时包含客户端脚本和服务器脚本,而静态网页中只能包含客户端脚本。既然动态网页是在服务器端执行的,那么我们就需要安装服务器程序去执行我们的动态网页。执行动态网页的服务器有多种,对于运行JSP技术编写的动态网页有如下几种。

1.Resin(最快的JSP、servlet服务器、开源、免费)

2.Tomcat (是目前使用量最大的免费开源JAVA服务器 ,熟练安装配置Tomcat是软件测试工程师的必备技能 )

3.WebLogic(是业界最好的JAVA应用服务器。功能强大,收费)

4.Websphere 是 IBM 的软件平台。

在这里我们选择使用Tomcat去执行JSP编写的动态网页,我们需要安装Tomcat服务器。我们需要了解的是,Tomcat是JAVA语言编写,Tomcat需要在JRE(Java Runtime Environment)即JAVA运行时刻环境下才能运行。那么,我们安装的JRE又派上用场了。所以,搭建JSP运行环境之前,必须要安装好JRE。在安装Tomcat过程中,就有寻找JRE文件夹的一步,没有JRE则Tomcat不能被安装成功。

 二、搭建JSP运行环境

安装JDK、JRE(注意不用去下载JRE包,JDK安装文件包中有JRE,在安装JDK过程中会提示安装JRE)

1、双击jdk安装包,点击【下一步】(您可到官网下载jdk安装包,也可以通过计算机相关专业所用软件---百度云链接下载进行下载)

 2、默认下一步就行,里面包含了所有项,包括公共jre ,点击【下一步】

3、安装jre,在这里可以更改jre安装路径,点击【下一步】

4、等待安装完成后,点击【关闭】完成安装JDK、JRE的安装

5、测试有是否安装(或安装)好JDK

Win+R->cmd->输入:“java -version”输出JAVA版本信息,则表示已经安装好JDK

6、配置环境变量Path

执行【我的电脑】-->【属性】-->【高级系统设置】-->【环境变量】

在系统变量里找到Path变量,在Path变量的变量值里添加完整的JDK的bin目录路径,即:C:\Program Files (x86)\Java\jdk1.8.0_144\bin(这是我的bin目录)。注意添加前要与前面的分隔开,使用英文格式下的分号“;”进行隔开。

7、检查Path变量是否配置正确

Win+R->cmd->输入javac,如果输出javac命令的可选项,即表示配置成功。

8、配置环境变量Classpath

在“系统变量”对话框下单击【新建】按钮,在“变量名”文本框中输入Classpath,在“变量值”文本框中输入Java类文件的位置,如:“.;C:\Program Files\Java\jdk1.8.0_144\lib\tools.jar; C:\Program Files\Java\jdk1.8.0_144\li\dt.jar”(这是我的JDK安装路径,读者只需找到自己安装的JDK的jar包路径就行)备注:tools.jar和dt.jar是JAVA程序运行的基础类包,所以需要配置Classpath变量。“.”代表当前路径,以它开头是为了程序运行时,在当前路径下去寻找额外的一些资源,例如自己写的一些类。“;”是起着分割的作用,如果在前面的目中没有找到想要的,则它会到分号后面的目录中查找,一级一级的找下去,直到Classpath变量值的末尾,如果仍然没有找到,就会报异常!

 

9、下面来安装Tomcat web服务器(可到官网下载不同版本的Tomcat:http://tomcat.apache.org/download-80.cgi,也可到我的网盘里下载:计算机相关专业所用软件---百度云链接下载),双击Tomcat安装包后,选择与Tomcat相关的文件进行安装,可自定义安装内容,这里选择安装下面打勾的内容。

10、自定义安装Tomcat的路径

11、默认下一步【NEXT】

12、下面要用到JRE的JVM(Java Virtual Machine),指定JRE文件的路径后,点击【Install】

13、安装完成后,点击【Finish】,运行Tomcat

14、我的电脑(此电脑)->管理->服务和应用程序->服务,然后找到Apache Tomcat,查看Tomcat服务器是否处于运行状态。正常来说,Tomcat是启动状态的。

 

15、下面要做的是测试Tomcat是否正确安装,在浏览器输入“http://localhost:8080/”,回车后,如果出现下面的页面,即表示Tomcat安装成功。

 

16、查看与了解Tomcat主要目录结构

bin 目录:主要存放Tomcat的命令文件 

config 目录:包含Tomcat的配置文件,如server.xml

logs目录:存放日志文件

webapps目录:存放应用程序实例,部署的应用程序保存在此目录。

work目录,存放JSP编译后产生的class文件

17、JSP页面的测试

用Sublime(记事本等其他编辑工具也行,最后要保存为后缀为.jsp的文件)编写下面的代码:

<html>

<body>

<%out.println("Hello!");%>

</body>

</html>

将文件命名为demo.jsp保存后,放置在webapps目录下的root目录下,即:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT 在浏览器地址栏中键入“http://localhost:8081/demo.jsp”(为了不引起端口冲突,我把Tomcat端口设置为8081) 浏览器界面输出“Hello!”,如下图:

注意:如果遇到服务器不能显示JSP页面,你可以换一种高版本的Tomcat服务器,作者一开始装得Tomcat6就不行,换成8.5的版本后才可以。当然,或许你还会遇到其他问题,你可在下方留言,共同探讨。

18、部署web服务应用

 第一方式:复制Web应用到Tomcat安装目录下的webapps文件夹中,通过在浏览器输入“http://localhost:8081/myjsp/index.jsp”(myjsp是我们的web应用的文件夹)来实现。目录如下:

 

 第二种方式:可以将Tomcat服务器所在计算机的某一目录设置成一个web服务目录,并为该web服务目录指定虚拟目录。用户只能通过虚拟目录访问WEB服务目录中的JSP页面,隐藏WEB服务目录的实际位置,增加安全性。可通过在server.xml文件中配置<Context>,在<host>和</host>之间加入“<Context path="/01" docBase="G:/JSPFILE" debug="0" reloadable="true"/>”,注意关闭标签,否则当关闭服务器后,再开启的时候,服务器开启不了。debug 则是设定debug level,0表示提供最少的信息,9表示提供最多的信息,设置了这个属性,运行在tomcat环境下的程序,源代码一做改动,tomcat服务会自动重启。

文章难免有疏漏之处,还望大家能多多指出,谢谢!

本文系作者原创,转载请注明出处,谢谢合作!

 

转载于:https://www.cnblogs.com/qikeyishu/p/7461278.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器的自动化监控实现

本文由 网易云 发布。 近年来容器技术不断成熟并得到应用。Docker作为容器技术的一个代表&#xff0c;目前也在快速发展中&#xff0c;基于 Docker的各种应用也正在普及&#xff0c;与此同时 Docker对传统的运维体系也带来了冲击。我们在建设运维平台的过程中&#xff0c;也需…

人工智能实战小程序之语音_前端开发

1. 人工智能实战小程序之准备工作 2. 人工智能实战小程序之语音_前端开发 今天这部分主要讲小程序前端功能的开发由于我偏后端&#xff0c;css是我的弱项&#xff0c;可能很多人和我一样开发小程序不知道如何下手&#xff0c;希望本篇文章对你有帮助我的学习路线是&#xff1a;…

当TFS/VSTS遇上Power BI

引言众所周知&#xff0c;要对TFS进行深入的图表分析&#xff0c;往往需要依赖于SQL Server Analysis Service和SQL Server Reporting Service。虽然随着TFS对敏捷项目的支持&#xff0c;内置了诸如累积流图、燃尽图等快捷图表&#xff1b;并且在最新的版本中还可以在仪表盘和查…

HashMap深度解析:一文让你彻底了解HashMap

写在前面HashMap是Map族中最为常用的一种&#xff0c;也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系&#xff0c;紧接着给出了 HashMap 在 JDK 中的定义&#xff0c;并结合源码分析了其四种构造方式。最后&#…

python_线程、进程和协程

线程 Threading用于提供线程相关的操作&#xff0c;线程是应用程序中工作的最小单元。 1 #!/usr/bin/env python2 #codingutf-83 __author__ yinjia4 5 6 import threading,time7 8 def show(arg):9 time.sleep(2) 10 print(线程: str(arg)) 11 12 for i in range(…

第四章:手机平板要兼顾-探究碎片

碎片是什么&#xff1f; 碎片&#xff08;Fragment&#xff09;是一种可以嵌入在活动&#xff08;Activity&#xff09;中的 UI 片段&#xff0c;它能让程序更加合理和充分的利用大屏幕的空间&#xff0c;因而在平板上应用的非常广泛。 碎片的使用方式 静态嵌入动态加载碎片和活…

Android Studio 3.4增可视化资源管理工具 可管理和预览项目资源

经过6个月的开发时间&#xff0c;网络大厂17日发布了最新版的App开发IDE Android Studio 3.4&#xff0c;现在就能够下载使用&#xff0c;除了有超过300个错误修护和稳定度增强之外&#xff0c;在开发、建置和测试App阶段&#xff0c;都推出了一些小的新功能和工具&#xff0c;…

[IoC容器Unity]第三回:依赖注入

上节介绍了&#xff0c;Unity的Lifetime Managers生命周期&#xff0c;Unity具体实现依赖注入包含构造函数注入、属性注入、方法注入&#xff0c;所谓注入相当赋值&#xff0c;下面一个一个来介绍。 2.构造函数注入 Unity利用Resolve方法解析一个对象&#xff0c;都是调用注册类…

Apache CarbonData 1.5.0编译及安装

2019独角兽企业重金招聘Python工程师标准>>> 一、编译环境描述 OpenStack创建五个虚拟机&#xff0c;其中1个主节点&#xff08;hostname为bigdatamaster&#xff09;&#xff0c;4个从节点&#xff08;hostname分别为&#xff0c;bigdataslave1、bigdataslave2、bi…

Filter介绍

Filter 可认为是 Servlet的一种 “ 加强版 ”&#xff0c;它主要用于对用户请求进行预处理&#xff0c; 也可以对HttpServletResponse 进行后处理&#xff0c;是个典型的处理链。Filter 也可对用户请求生成响应&#xff0c;这一 点与Servlet 相同&#xff0c; 但实际上很少会使…

python --- 二分查找算法

二分查找法&#xff1a;在我的理解中这个查找方法为什么会叫二分呢&#xff0c;我认为是将要查询的一个列表分成了两份&#xff0c;然后在利用某个值来进行比较&#xff0c;在一个不断循环的过程中来找出我们要找的某一个值。 废话不多说&#xff0c;先上代码&#xff1a; 1 de…

Java暑假作业

一.《大护法》观影有感 ... 从预告开始就期待着这部影片&#xff0c;在看过一遍后又忍不住二刷&#xff0c;影片观看至第二遍后&#xff0c;对于全片的脉络也更清晰了一点&#xff0c;虽然打着暴力美学的旗子&#xff0c;但《大护法》偏偏更文艺一些。文艺片是没有对错的&a…

使用EasyNetQ组件操作RabbitMQ消息队列服务

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现&#xff0c;是实现消息队列应用的一个中间件&#xff0c;消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题。实现高性能&#xff0c;…

TensorFlow 1.12.2 发布,修复 GIF 构造安全漏洞

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; TensorFlow 1.12.2 发布了&#xff0c;此处本修复了一个潜在的安全漏洞&#xff1a; 精心设计的 GIF 图像可以在解码过程中产生空指针解引用更新说明&#xff1a; https://github.com/tensorflo…

对象变为指定格式的数组

拿到的对象的格式&#xff08;一个对象里面都好多属性&#xff09; 想要转换成的数据格式&#xff08;一个数组里面有好多个对象&#xff0c;每个对象有一个id和name的属性&#xff09; 如何处理的 selectionChange(val) { // 列表选择var dynamicTags1 [];var arr[]for(var i…

mysql学习(2)索引的本质

2019独角兽企业重金招聘Python工程师标准>>> 问题&#xff1a;SQL查询慢怎么办&#xff1f; 优化手段&#xff0c;加索引。 索引是帮助MYSQL高效的获取数据的排好序的数据结构。 问题&#xff1a;索引结构为什么使用Btree而不使用二叉树&#xff0c;红黑树或者HASH结…

CSS3:CSS3 文本效果

ylbtech-CSS3&#xff1a;CSS3 文本效果1.返回顶部 1、CSS3 文本效果 CSS3 文本效果 CSS3中包含几个新的文本特征。 在本章中您将了解以下文本属性&#xff1a; text-shadowbox-shadowtext-overflowword-wrapword-break浏览器支持 属性 text-shadow4.010.03.54.09.5box-sha…

洛谷 P2296 寻找道路

题目描述 在有向图G 中&#xff0c;每条边的长度均为1 &#xff0c;现给定起点和终点&#xff0c;请你在图中找一条从起点到终点的路径&#xff0c;该路径满足以下条件&#xff1a; 1 &#xff0e;路径上的所有点的出边所指向的点都直接或间接与终点连通。 2 &#xff0e;在满足…

Feature Preprocessing on Kaggle

刚入手data science, 想着自己玩一玩kaggle&#xff0c;玩了新手Titanic和House Price的 项目, 觉得基本的baseline还是可以写出来&#xff0c;但是具体到一些细节&#xff0c;以至于到能拿到的出手的成绩还是需要理论分析的。 本文旨在介绍kaggle比赛到各种原理与技巧&#xf…

如果您遇到文件或数据库问题,如何重置Joomla

2019独角兽企业重金招聘Python工程师标准>>> 如果您遇到Joomla站点的问题&#xff0c;那么重新安装其核心文件和数据库可能是最佳解决方案。 了解问题 这种方法无法解决您的所有问题。但它主要适用于由Joomla核心引起的问题。 运行Joomla核心更新后&#xff0c;这些…