关于Tomcat编译JSP

Tomcat源码阅读之Jasper(JSP解释器)详解 Jasper JSP解释器 详解 JSP编译方式运行时编译编译过程JspServlet 处理流程图:编译结果预编译(Apache Ant)JSP编译原理代码分析 本文构建好的Tomcat(含注释)gitee地址:点击 主要核心一定要是自己去debug源码 对于基于JSP 的web应用来说,我们可以直接在JSP页面中编写 Java代码,添加第三方的标签库,以及使用EL表达式。但是无论经过何种形式的处理,最终输出到客户端的都是标准的HTML页面(包含js ,css…),并不包含任何的java相关的语法。 也 阅读详情

最近在项目中,需要修改一个jsp的的内容,主要是设计里面的java代码,在对代码就行修改之后(为了防止出错,特意把原来的jsp文件备份了一个,另外copy了一份jsp),由于新的jsp执行出错,所在就直接把原来的jsp文件放回去

再次访问jsp的时候,发现报错是原来的jsp上面的错误,但是明明那个jsp文件已经删除了。

于是上网查资料,发现Tomcat在编译jsp文件的设计:在对jsp进行访问的时候,Tomcat会把jsp文件的修改时间与最近一次编译这个jsp文件的时间戳进行对比,若jsp文件的修改时间小于或者等于最近一次编译的时间,tomcat就不会再进行一次编译,而是直接把Tomcat的class文件供外部访问(JSP文件最终会被编译成class文件),所以也就出现了我上述说的问题,因为我是复制了jsp文件,所以老的jsp文件的修改时间是不是最新的,所以Tomcat不会再次进行编译,而是使用原来的class文件

解决办法:1  对要访问的jsp文件的就行任意不影响代码的操作比如换行、加空格

2 删除Tomcat的work目录,这时Tomcat就会重新编译jsp文件

Tomcat的jsp编译参数 NULL 博文链接:https://michaelee.iteye.com/blog/1603811 立即下载

相关推荐

Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)

nexus3旧版本OrientDB升级H2,及整体迁移nexus3数据到其它服务器。

葫芦娃 5550

Tomcat源码解析:Jsp文件的编译、实现

1.Jsp简介     jsp(java server page),其根本是一个简化的Servlet技术,是一种动态网页技术标准。     它是在传统的网页HTML页面中插入java代码段,从而形成jsp文件,后缀为.jsp。     jsp同Servlet一样,是在服务端执行,通常返回给客户端的是一个HTML文件。     这种动态网页技术,主要目的是将逻辑从Servlet中分离,jsp...

恐龙弟旺仔的博客 7021

java结合Ai

Spring AI 是 AI 工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并促进使用POJO作为应用程序的构建块到AI领域。特征跨 AI 提供商的可移植 API 支持,适用于聊天、文本到图像和嵌入模型。支持同步 API 和流 API 选项。还支持下拉以访问特定于模型的功能。聊天模型亚马逊基岩人类学Cohere的命令AI21 Labs的侏罗纪-2Meta 的 LLama亚马逊的泰坦人类学克劳德Azure 开放式 AI。

qq_67832732的博客 2848

tomcat中jsp编译

tomcat运行的工程中,jsp替换文件后可能不起作用。原因是jsp也是需要编译的。编译后的文件存放在tomcat/work文件夹下。如果替换不起作用,可以将work文件夹下的内容删除掉,重新启tomcat即可。 转载于:https://www.cnblogs.com/cassandra/p/4983064.html...

as32165的博客 296

NPU、CPU和GPU

NPU、CPU和GPU是三种不同类型的处理器,它们各自有不同的设计特点和应用场景。NPU(Neural Processing Unit,神经网络处理单元)是一种专门为加速神经网络计算而设计的处理器。

m0_60697583的博客 1755

TMS-EEG数据预处理:eeglab工具包TESA(一)

b. 自动选择:Tools -> Reject data epochs -> Reject by probability,然后进行Plot -> channel,进行删除。TMS-EEG(经颅磁刺激-脑电图)是一种结合了TMS和EEG记录的技术,这种技术允许研究者在非侵入的情况下探测大脑环路,评估大脑的兴奋性和连通性等皮层特性。对移除脉冲伪迹的数据进行插值:Tools ->TESA -> Interpolate removed data;插值后,画图查看:数据会有数值;

weixin_43604817的博客 1492

tomcat-jsp编译原理

Jsp编译原理Tomcat编译jsp         在说jsp的编译原理之前,先简单说下tomcat编译后的jsp。在启动tomcat的时候,tomcat是不会立刻将jsp编译为java和class文件的。只有第一次访问jsp页面的时候tomcat才会编译。Tomca编译后的jsp对应的java文件和class文件存放在tomcat/work/Engine名称/Host名称/Context名称目...

一叶知春秋 2762

SAP 接口测试操作-业务顾问

业务顾问测试接口操作

weixin_43657667的博客 5156

Tomcat编译jsp的条件

当我们请求jsp页面时,tomcat将请求交由JspServlet来处理,对jsp页面的处理主要是通过serviceJspFile函数来实现的。

Stay Hungry, Stay Foolish 1633

ZYNQ烧写程序到flash

1.打开SDK创建FBSl项目 点击finish 2.创建BootImage 导入fsbl.elf、.bin、.elf三个文件,Create Image 生成BOOT.bin文件 3.将BOOT文件烧录到FLASH image File选择2中生成的BOOT.bin文件,FSBL File选择fsbl.elf文件,连接好ZYNQ的Jtag,点击Program,即可烧录。 4.烧录程序到FLASH失败 如果是第一次烧录,需更改创建的fsbl工程下的main函数,在如下代码处加入BootModeRegi

qq_40603614的博客 8302

通过WorkVisual连接KUKA机器人的具体方法

通过WorkVisual连接KUKA机器人的具体方法

Robot_PLC_HMI_Automation 6842

Tomcat--Jasper概述、JSP编译方式(运行时编译,预编译)源码跟踪、JSP编译原理

Jasper概述 Jasper模块是Tomcat的JSP核心引擎,JSP本质上是一个Servlet。Tomcat使用Jasper对JSP语法进行解析,生成Servlet并生成Class字节码,用户在进行访问jsp时,会访问Servlet,最终将访问结果直接响应在浏览器端。另外,在运行的时候,Jasper还会检测JSP文件是否修改,如果修改,则会重新编译JSP文件。 JSP编译方式 运行时编译 To...

吴声子夜歌的博客 2464

9篇2章2节:GBD 数据库的数据申请详解

无论您是初入公共卫生领域的学生、资深的科研工作者,还是政策决策者,GBD数据库都将成为您数据分析与决策支持中不可或缺的重要工具。

MD Code 2598

Tomcat无法编译jsp问题

今天同事遇到一个很奇怪的问题, 在Eclipse中编辑过的jsp,发布在tomcat中不再编译,仍然显示未修改前的内容.最后我试着让他重新部署,问题依然存在. 我想一定是jsp没有编译的原因,最后让他把tomcat目录中下work目录下的文件夹都删除,问题得以解决! (一):目录结构tomcat的目录结构如下: 目录名

sophia_230的专栏 4838

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Tomcat 中的 JSP: 自动编译

最近遇到一个问题: 环境中的JSP页面在被修改以后没有在浏览器中表现出来, 呈现出的仍然是旧版的样子。 这个事情比较奇怪,但凡有初级web 开发经验的人都了解,在web容器是tomcat的开发环境中修改jsp页面后无需重启tomcat,仅仅刷新就可以在浏览器中看到效果,这已经是一个人尽皆知的事情了,那这个幺蛾子是怎么飞出来的? 本着生活问度娘,技术求谷哥的精神,遂google之,原理还是挺有意

pushme_pli的专栏 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

关于Tomcat7无法编译jsp页面的解决方法

由于工作需要,要把项目发布到服务器上,本地测试全部通过,但是有一些在系统中没有用到的无关紧要的JSP页面有错误,这些错误时由于系统升级遗留下来的因为API换了导致的错误。 重点来了,本地测试好好的,发布到服务器上时,因为Tomcat无法编译部分系统用到的JSP页面,这下好了,一直显示无法加载类或是class文件不存在。错误截图如下:

csdn740376174的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jsp经tomcat编译后的.class文件位置

jsp经tomcat编译后的.class文件位置这个文件被一般会存放在E:\tomcat\work\Catalina\localhost\_\org\apache\jsp文件夹附近。搜一下就能找到或者使用MyEclipse的时候,创建的web框架工程的时候配置的服务器,工具会重新设定缓存位置,根据设置的不同会有所不同,找到文件名,然后去搜一下就会搜到。文件名一般会被更改,改名...

weixin_34295316的博客 1705

tomcat编译jsp产生的java和class文件存储在tomcat的work目录下

 tomcat编译jsp产生的java和class文件存储在tomcat的work目录下 TOMCAT_HOME/work/Catalina/localhost/目录下,注意:java文件和.class文件都在相同目录下,和各自的jsp文件处于相同目录。例如:index.jsp文件编译后,生成index_jsp.java文件和index_jsp.class文件。

小猪的成长专栏 7101

Tomcat 预编译JSP 脚本

参考:The Apache Jakarta Tomcat 5.5 Servlet/JSP Container Jasper 2 JSP Engine How Tohttp://jakarta.apache.org/tomcat/tomcat-5.5-doc/jasper-howto.htmljspchttp://ant.apache.org/manual/OptionalTas

terry_f的专栏 4003

Tomcat JSP编译机制剖析

Tomcat JSP编译机制是Java Web技术中一个重要的环节,其编译过程涉及到源代码解析、编译和打包等步骤。在Tomcat中,JSP(Java Server Pages)是Web应用程序的核心组件之一,其编译机制主要涉及到Java源代码的解析、编译和打包等步骤。在未来的发展中,随着技术的不断进步和应用需求的不断变化,Tomcat编译机制也将面临更多的挑战和机遇。1. 优化源代码解析和编译过程:通过采用先进的源代码解析技术和编译器优化算法,提高解析和编译的效率和质量。二、Tomcat编译机制概述。

qq_35974860的博客 85

Tomcat编译jsp生成Servlet文件的存放位置

Tomcat将jsp编译成servlet后的文件存放在\work\Catalina目录下,例如jsp文件\webapps\hh\h.jsp,编译后\work\Catalina\localhost\hh\org\apache\jsp\h_jsp.javaservlet文件和.class文件都在同一目录下。控制台报的异常行数是指编译过后的servlet文件,而不是你原来的jsp文件!疑惑我的电脑上没安

Leon 2776

Tomcat中找不到JSP编译后的java文件

Tomcat中找不到JSP编译后的java文件 Background: 开发环境:eclipse + tomcat 想去看源码中jsp是如何用servlet实现的时候,发现在D:\proSoft\Tomcat\apache-tomcat\work\Catalina\localhost\projectName 下找不到包装生成的jspName_jsp.java 解决思路:肯定是有个配置文件规定了生

L_Cyline的博客 6921

Tomcat关于JSP及时编译的配置

对于JSP, Tomcat默认是开发模式的, 也就是说JSP修改后, 不用再重启Tomcat就能看到JSP中修改的效果。    现在业务要求这样: Tomcat在关闭jsp及时编译功能后,在不关闭Tomcat情况下打开这个功能,做些修改,修改完了后,再关掉这个jsp及时编译功能。    感觉有些异想天开, 不知现在有没有实现这个功能。  ...

rmn190 363

在tomcat的文件夹中找不到JSP编译后的Java文件

在tomcat的文件夹中找不到JSP编译后的Java文件 开发环境eclipse 1.(正常情况下) tomcat编译jsp产生的java和class文件存储的目录为: D:\apache-tomcat-7.0.70\work\Catalina\localhost 2.( 找不到的情况) 可能是你的tomcat配置在Eclipse的server中了。如果是的话,在Eclipse中...

qq_44971105的博客 2661

Tomcat不能编译JSP文件的问题解决方案

Tomcat不能编译JSP文件的问题解决方案 在Tomcat出现类似如下异常: The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError 这是由于Tomcat使用的是Ant进行编译JSP文件的,而Ant会因为JVM的最大...

☆ lijun ☆ 1935
上一篇: java.lang.Double转成String
下一篇: FCKeditor编辑器详解
暗夜荆棘鸟
博客等级 码龄12年 9粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值