JSP从入门到精通
1. jsp开发环境配置
在windows下配置jsp的开发环境:
假设已经安装好了jdk,下面来配置tomcat
去http://tomcat.apache.org 下载tomcat windows64位的免安装版本

下载完成后解压并重命名为tomcat8
如图:

在环境变量中配置catalina
如下:
CATALINA_HOME=D:\tomcat8
CLASSPATH=%CATALINA_HOME%\common\lib\jsp-api.jar;
使用startup.bat启动tomcat
发现cmd一闪而过,tomcat启动失败
是因为startup.bat调用了catalina.bat, catalina.bat调用了setclasspath.bat
根本原因在于setclasspath.bat没有定义JAVA_HOME和JRE_HOME
解决该问题的方法是在setclasspath.bat中定义JAVA_HOME和JRE_HOME
增加两行代码
如图所示:

再次启动startup.bat, 成功!
在浏览器中访问localhost:8080

127.0.0.1:8080默认访问的是tomcat根目录下的webapps/ROOT/index.jsp
2. 在eclipse上集成tomcat
首先下载eclipse for javaee ,解压后并重命名
如图所示:

启动eclipse
如图:

在Window->Preference->Server->Runtime Environments配置tomcat
如图:



使用eclipse创建一个动态web工程来测试eclipse是否集成tomcat成功
如图:


新创建的动态web工程的目录结构如下:

在WebContent下创建test.jsp
代码如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Test</title>
</head>
<body>
Hello, Tomcat and JSP
</body>
</html>
在文件代码中右键Run AS->Run on Server
如图:
在console中发现tomcat成功启动!

并且自动打开了浏览器

注意:如果在Run on Server已经手动开启了tomcat则会报错,因为eclipse会自动开启tomcat
3. jsp的生命周期
原理:
编译阶段(被Servlet容器编译为Servlet源程序)
初始化阶段(加载被编译的Servlet源程序,调用构造方法和初始化方法)public void jspInit(){}
响应请求阶段(Servlet响应客户端的请求) void __jspService(HttpServletRequest request, HttpServletResponse response){}
销毁阶段(调用析构方法)public void jspDestroy(){}
测试案例:
<%@ 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">
<title>jsp的生命周期</title>
</head>
<body>
<%!
private int initCount = 0;
private int serviceCount = 0;
private int destroyCount = 0;
%>
<%!
public void jspInit(){
initCount ++;
}
void __jspService(HttpServletRequest request, HttpServletResponse response){
serviceCount ++;
}
public void jspDestroy(){
destroyCount ++;
}
%>
<h1>测试数据:</h1>
<p>共初始化<%= initCount %>次</p>
<p>共处理请求<%= serviceCount %>次</p>
<p>共销毁<%= destroyCount %>次</p>
</body>
</html>
4. jsp语法
jsp变量声明语法:
<%! code %>
或
<jsp:decl
JSP从入门到精通的更多相关文章
- Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
因为内容比较多,所以每篇讲解一些内容,最后会放出全部代码,可以参考.操作中总会遇到各式各样的问题,个人对部分问题的研究在最后一篇 问题研究 里.欢迎大家探讨学习. 代码都经过个人测试,但仍可能有各种未 ...
- 6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC.从下图可以看到ASP.NET WebFo ...
- Java入门-浅析Java学习从入门到精通【转】
一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库 ...
- 【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!
PHP从精通到入门 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸 ...
- 【PHP】最详细PHP从入门到精通(一)——想学习PHP的朋友们福利来了!
PHP从入门到精通 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java ...
- 真正的Java学习从入门到精通
http://www.it.com.cn/f/edu/059/6/169189.htm 一. 工具篇JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行 ...
- bayaim_java_入门到精通_听课笔记bayaim_20181120
------------------java_入门到精通_听课笔记bayaim_20181120--------------------------------- Java的三种技术架构: JAVAE ...
- 快速开发架构Spring Boot 从入门到精通 附源码
导读 篇幅较长,干货十足,阅读需花费点时间.珍惜原创,转载请注明出处,谢谢! Spring Boot基础 Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计 ...
- MyBatis从入门到精通(第9章):Spring集成MyBatis(下)
MyBatis从入门到精通(第9章):Spring集成MyBatis(下) springmvc执行流程原理 mybatis-spring 可以帮助我们将MyBatis代码无缝整合到Spring中.使 ...
随机推荐
- Ubuntu下的 PPPoE 拨号上网方法
1. 配置 pppoe $ sudo pppoeconf 2. 联网 $ sudo pon dsl-provider 3. 断网 $ sudo poff 4. 查看日志 $ plog 5. 查看接口信 ...
- 机器学习三剑客之Numpy库基本操作
NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...
- 小技巧:改变 VS Code 工作区页面背景
效果图: 步骤(一): 1.点击页面左上角 文件/首选项/设置 2.在搜索框中输入:background 如下图. 3.找到 Background: Custom Images 选项并点击在 ...
- Windows10下使用python+selenium实现谷歌浏览器的自动控制
第一 谷歌浏览器一直是开发人员最喜欢的浏览器,python爬虫在进行抓包时尤其好用,今天为大家带来python+selenium进行自动化控制的安装教程 安装selenium windows下在cmd ...
- PAT A1094 The Largest Generation (25 分)——树的bfs遍历
A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level bel ...
- Mac支持ntfs格式的移动硬盘读写操作
转好文:https://blog.csdn.net/u013247765/article/details/77932144 本机环境: macOS Sierra version 10.12.6 201 ...
- echarts 图例显示到右边
原: legend: { data:['同龄普通孩子','已具备技能','已泛化技能','已掌握技能','学习中'] }, 改: legend: { data:['同龄普通孩子','已具备技能','已 ...
- 【php增删改查实例】第二十四节 - 文件上传在项目中的具体应用
文件上传在项目中,一般有两个用武之地,分别为设置用户的头像和上传附件.本节我们演示如果进行用户头像的上传. 因为一个用户单独并且唯一对应了一个头像,是一对一的关系,所以我们需要去给tm_users表添 ...
- Bing.com在.NET Core 2.1上运行!
Bing.com在.NET Core 2.1上运行! 相关知识请参考.netCore开发团队博客(https://blogs.msdn.microsoft.com/dotnet/) Bing.com是 ...
- 【C#复习总结】细说泛型委托
1 前言 本系列会将[委托] [匿名方法][Lambda表达式] [泛型委托] [表达式树] [事件]等基础知识总结一下.(本人小白一枚,有错误的地方希望大佬指正) 系类1:细说委托 系类2:细说匿名 ...