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中.使 ...
随机推荐
- P1451 求细胞数量(广搜)
题意:就是0把是所有细胞圈起来了.而被圈起来的是所有数字全部为一个细胞问有多少个这样的细胞.(mmp,我读半天题) 思路:广搜索.就是,0的话就不放入了,不为0的话,就进入队列,然后,再看它的4个方向 ...
- Linux:Day3 文件系统
Linux的文件系统: 根文件系统(rootfs):root filesystem /boot:引导文件存放目录:内核文件(vmlinuz).引导加载器(bootloader,grub)都存放于此目录 ...
- hyperledge工具-cryptogen
参考:http://baijiahao.baidu.com/s?id=1596614770784685300&wfr=spider&for=pc cryptogen是Hyperledg ...
- node.js之十大Web框架
之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了.再到后来是因为Settings-Sync插件二次开发,我需要用node. ...
- JavaScript的基本包装类型说明
一.基本包装类型: 为了便于操作基本类型值,ECMAScript 还提供了3个特殊的引用类型:Boolean.Number和String.这些基本包装类型,具有与各自基本类型相应的特殊行为. 实际上我 ...
- BZOJ 5306 [HAOI2018] 染色
BZOJ 5306 [HAOI2018] 染色 首先,求出$N$个位置,出现次数恰好为$S$的颜色至少有$K$种. 方案数显然为$a_i=\frac{n!\times (m-i)^{m-i\times ...
- 比起Windows,怎样解读Linux的文件系统与目录结构?
比起Windows,怎样解读Linux的文件系统与目录结构? Linux 和Windows的文件系统有些不同,在学习使用 Linux 之前,若能够了解这些不同,会有助于后续学习. 本文先对Window ...
- Python之Flask笔记
在这里先说一下最开始所经历的一些错误app=Flask(_name_),当初拼写的时候怎么都报错后来发现此处是两个'_' 配置文件 app.config.from_object(__name__) 在 ...
- find和grep命令合集
linux grep命令 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...
- 安装SQL Server时,提示VS Shell 安装失败,退出代码为 1638。
在安装SQL Server时,提示“安装 Microsoft Visual C++ 2015 Redistributable 时出错VS Shell 安装失败,退出代码为 1638”. 原因:是由于你 ...