JSP环境下如何对LESS自动预处理

浏览器/html/css面试题----2 一个对象,两个前提,三个步骤。一个对象指的是Virtual DOM是一个基本的JavaScript对象,也是整个Virtual DOM树的基本。两个前提分别是JavaScript很快和直接操作DOM很慢,这是Virtual DOM得以实现的两个基本前提。得益于V8引擎的出现,让JavaScript可以高效地运行,在性能上有了极大的提高。直接操作DOM的低效和JavaScript的高效相对比,为Virtual DOM的产生提供了大前提。三个步骤指。 阅读详情

首先,我其实并不懂JSP,但是碍于项目需求,我不得不以一个前端的身份去研究如何在JSP环境下实施LESS。

因为我们这个项目里有用户个性化CSS文件,所以需要能够对LESS自动预处理,而不希望需要人工介入。

好了,废话不多说,以下提供我研究出来的方案。

首先是包依赖性:

apache-commons-logging.jar

log4j-1.2.17.jar

commons-lang-2.6.jar (只能用3.0以下版本,版本过高将报编译错误)

js.jar (目前可用版本为rhino1_7R3和rhino1_7R4。rhino1_7R4性能稍高,但是只报编译错误。rhino1_7R3性能稍差,但是错误信息很详细,对调试LESS很有用。)

lesscss-engine-1.3.0.jar (可选的,似乎去掉也不影响正常运行)

lesscss-servlet-1.3.0.jar (LESS解析包,这个才是关键)

将以上这些包全部放入tomcat的lib文件夹下即可。

环境配置:

只需在WEB-INF/web.xml 文件添加如下节点即可:

    <servlet>
        <servlet-name>less</servlet-name>
        <servlet-class>com.asual.lesscss.LessServlet</servlet-class>
        <init-param>
            <param-name>compress</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>cache</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>less</servlet-name>
        <url-pattern>*.less</url-pattern>
    </servlet-mapping>

参数compress,表示是否启用压缩。生产环境建议启用。

参数cache,表示是否启用缓存。测试环境不要启用。

Okay,我们来测试一下,新建一个文件,命名为 test.less,文件内容如下:

@color: #FF0000;

#header {
    color: @color;
}
然后,启动tomcat,打开浏览器,输入:http://127.0.0.1:8080/test.less。结果应该如下:

#header {
  color: #ff0000;
}
至此,JSP环境下的LESS预处理宣告成功。

JSP用户登录校验演示与实现 JSP(JavaServer Pages)是一种实现基于Java的Web应用的技术。它允许开发者将Java代码嵌入HTML页面中,使得动态内容生成变得简单直观。通过JSP,可以在服务器端处理用户的输入,并生成响应的HTML内容发送给客户端浏览器。在MVC模式中,模型(Model)代表数据和业务逻辑,视图(View)负责显示数据,控制器(Controller)处理用户输入并调用模型和视图。模型: 应该设计为无状态的,以便于数据在业务逻辑处理中的流转。视图。 阅读详情

相关推荐

JSP网上零食商城系统设计与实现

Java Server Pages(JSP)是一种动态网页技术,用于创建交互式的网页内容。JSP页面本质上是HTML中嵌入Java代码,它允许开发者编写Java代码片段嵌入到HTML页面中。当Web服务器接收到对JSP页面的请求时,服务器将JSP文件转化为Servlet,然后由Java虚拟机(JVM)执行。

weixin_28746457的博客 661

less简单应用

简介(1)less是一种动态样式语言(2)less将 CSS 赋予了动态语言的特性,如 变量, 继承, 运算, 函数.(3)less既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可以借助Node.js或者Rhino在服务端运行(4)less是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作

涛痕 1961

医院住院管理系统Java源码:从class反编译到Servlet+JSP+JDBC实战

在Java Web开发中,Servlet、JSP与JDBC构成了最经典的三层架构,也是理解框架原理的基础。通过分析编译后的class文件,可以逆向还原项目的控制层、业务层与持久层结构,掌握从请求分发到数据库操作的完整链路。这类技术实践在课程设计与面试准备中极具价值,尤其适合用医院住院管理系统等业务闭环完整的项目来演练。以一份典型的Java项目源码为例,可以学习如何通过反编译class文件识别Servlet+JSP+JDBC架构,配置JDK8/MySQL8/Tomcat9环境,并针对驱动不兼容、中文乱码等高频

weixin_29224589的博客 248

解决less注释在stylelint校验中报错

单行注释 (如 Sass,Less,Stylus),该规则将不会发出警告。它们被你的处理器编译为标准的 CSS 注释,因此 stylelint 会认为它们是有效的。那么直接使用多行注释实际上就没有问题了,但是我的vscode的默认快捷键注释出来的就是。多行注释,其中单行注释不会被编译到css文件中,多行注释会编译到css文件中。注释掉单行代码的不为人知的方法发出警告。的多行注释,但是我的vscode的默认快捷键注释出来的就是。单行注释less时,报css语法错误。支持解析 CSS 中的单行注释。

weixin_50698422的博客 1949

realsense D455深度相机+YOLO V5结合实现目标检测(一)

realsense D455深度相机+YOLO V5结合实现目标检测代码来源环境配置代码分析:1.如何用realsense在python下面调用的问题:2.对main_debug.py文件的分析:结束语 可以实现将D435,D455深度相机和yolo v5结合到一起,在识别物体的同时,还能测到物体相对与相机的距离。 说明一下为什么需要做这个事情?1.首先为什么需要用到realsense D455深度相机? 因为他是普通的相机还加了一个红外测距的东西,所以其他二维图像一样,能够得到三维世界在二维像素平面的投影

文一生 3万+

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 495

JSP学习总结

最近由于作业需要,学了下JSP。 其实我只会很简单的,比如MVC这种简单的框架。实在是没什么兴趣,还是逼着自己把网页搞完了。 每次到了最后的关头,就觉得有一句话特别有道理--“出来混的,迟早是要还的。” 是的,的确如此,有些事,是逃不了躲不过的,与其拖到最后,还不如早点做完,自己也省心,这就需要自己要学会更静心的做事了。 我们做的就是个简单的购物网站(这种做烂了的东西)。 其实最开始真的

Less Is More 789

01 高等数学 上下册知识点总结

极限与连续 8个等价无穷小 8个常用泰勒公式 高数复习——多元函数微分学 一、概念 一元函数: 可微<=>可导 △y=A△x+o(△x)dy=AdxA=f′(x)\triangle y=A\triangle x+o(\triangle x)\\dy=Adx\\A=f'(x)△y=A△x+o(△x)dy=AdxA=f′(x) 多元函数: 可微=>可导(可导指两个偏导数存在,反之不成立) 可微=>连续(反之不成立) △z=A△x+B△y+o(p)dz=Adx+BdyA=δzδxdx

qq_44292038的博客 1万+

JSP的基础与使用

1.JSP基础知识 1.1什么是JSP JSP全名JAVA SERVER Pages,中文名叫java服务器页面,其根本就是一个简化的serverlet设计(servlet拥有一系列的方法处理HTTP请求)。就是在传统html页面中插入java程序段和JSP(tag)标记,从而形成jsp文件,文件形式*.jsp。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其它操作系统运行。 jsp将网页逻辑与网页设计的显示分离,支持可重用的基于设计的组件(在一个应用里面可以被重用和组合的 java

apple_51491580的博客 598

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9477

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3113

JSP颜色管理实战:从色卡体系到主题切换的工程化方案

CSS变量与JSP服务端渲染结合,是解决传统JSP项目颜色散乱、主题切换困难的有效路径。其原理在于利用CSS自定义属性定义语义化色卡,通过JSP在服务端动态输出变量值或客户端localStorage持久化主题偏好,实现颜色统一治理与动态换肤。这一方案的技术价值在于降低维护成本、提升可访问性,并支持浏览器兼容与打印样式适配。常见于后台管理系统、毕业论文管理过程系统等JSP渲染场景,通过色卡查询页与版本管理形成可落地的颜色规范。

weixin_42548874的博客 181

TypeScript版LangChain环境配置全攻略:从零搭建AI应用开发环境

大语言模型(LLM)作为当前AI应用开发的核心技术,通过API接口为开发者提供了强大的自然语言处理能力。其工作原理基于Transformer架构,通过预训练和微调实现对人类语言的深度理解与生成。在工程实践中,开发者需要将LLM与外部工具、数据源和业务逻辑有效集成,这正是LangChain框架的技术价值所在——它提供了标准化的组件和接口,简化了复杂AI应用的构建流程。应用场景涵盖智能客服、内容生成、数据分析助手等多个领域。本文聚焦于TypeScript/JavaScript生态下的LangChain开发,详细

weixin_29055699的博客 253

第11期 《项目斩锋芒》 2016年5月刊

1、Tree资源数的实战研究 – 马康 简介:树是我们常见的一种植物,资源树是我们在程序中为用户提供的灵活功能,让层次更清晰。这里小编针对资源树通过三中思路的践行最终取得了成功的桂冠,与大家分享. 2、J2EE的十三个规范 – 齐伟 简介:认认真真地总结了一下java十三个规范,原来认为很高大尚的东西其实很简单,每一个规范都能在.net中产生共鸣,每一个规范都能在现实生活中找到原型,特此分享

提高班-官方博刊主页 1220

2026款拯救者Y9000P深度学习环境配置指南

这套环境适配 2026 款拯救者 Y9000P 的 RTX5060,可直接用于 CV(图像分类、检测)、NLP 等 PyTorch 深度学习任务,GPU 利用率正常,无兼容性问题。后续复现环境时,直接按本文步骤操作即可~

大糊涂虫 2642

9 海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例

海康视觉平台VisionMaster 上手系列:典型案例之螺丝机案例 快速入门 工业机器视觉 机器视觉

HuangGong2022的博客 7177

jss/css/html 相关的技术栈有哪些?

常见的JavaScript技术组件:jQuery:React:Vue.js:Angular:Node.js:Express.js:Webpack:Babel:Redux:RxJS:D3.js:Lodash:与CSS相关的技术栈和工具:Less:Sass(Syntactically Awesome Stylesheets):Stylus:PostCSS:CSS-in-JS:Tailwind CSS:CSS Grid 和 Flexbox:CSS工具和框架:一些类似HTML的标记语言:XML(可扩展标记语言):X

1795

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

终极Koala插件开发指南:3步创建自定义编译器扩展,提升开发效率

Koala是一款专为less、sass和coffeescript编译打造的GUI应用,旨在帮助Web开发者提升开发效率。本教程将带你快速掌握如何为Koala创建自定义编译器扩展,让你的前端开发流程更加顺畅高效。 ## 为什么需要自定义编译器扩展? Koala作为一款强大的前端构建工具,默认支持多种主流预处理器,但在实际开发中,你可能会遇到一些特殊的编译需求。此时,自定义编译器扩展就显得尤为重要

gitblog_00443的博客 757

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Webpack-to-Vite核心功能全解析:自动转换配置项与依赖处理终极指南

在当今前端开发领域,构建工具的性能直接影响开发体验和项目交付效率。**webpack-to-vite**作为一个专业的项目迁移工具,能够将现有的webpack或vue-cli项目无缝转换为Vite项目,让开发者享受到Vite带来的极致构建速度。本文将深入解析这个强大工具的核心功能,帮助你快速掌握从webpack迁移到Vite的完整流程。 ## 🚀 为什么选择webpack-to-vite进行项

gitblog_00711的博客 458

深度学习工具包 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")

前端发展概述

目录01 Vue概述02 前端知识体系2.1 前端三要素:HTML,CSS,JS2.2 HTML2.3 CSS2.3.1 什么是CSS预处理器?2.4 JavaScript2.4.1 常用的JavaScript框架2.5 主流UI框架(View层框架)2.6 JavaScript构建工具2.7 后端技术03 了解前后端分离的演变历史3.1 后端为主的MVC时代3.2 基于AJAX带来的SPA时代3.3 前端为主的MV*时代3.4 NodeJs带来的全栈时代3.5.总结 01 Vue概述 Vue是一套用于构建

686

Postman从入门到精通:API开发测试与自动化实战指南

在软件开发和测试领域,API(应用程序编程接口)作为系统间通信的桥梁,其高效调试与测试是保障软件质量的关键环节。理解HTTP协议、请求响应模型等基础概念,是掌握API交互原理的前提。通过工具实现API生命周期的可视化管理,能极大提升开发测试效率,其技术价值在于将繁琐的接口调试工作标准化、自动化。在实际应用中,无论是前后端分离开发中的接口联调、自动化测试脚本编写,还是团队间的API文档协作,都需要一套完整的解决方案。Postman作为业界广泛使用的API平台,集成了**集合运行器**进行批量测试与**环境变量

weixin_34268169的博客 497

Java Web开发从零开始:初学者完整学习指南

面向对象编程(OOP):掌握类与对象、封装、继承、多态等概念,理解抽象类与接口的应用场景。 Java核心API:熟练使用集合框架(, )、I/O流、多线程(, )和异常处理机制。 新特性:掌握Java 8+的Lambda表达式和Stream API,简化集合操作。 开发环境:安装JDK(推荐JDK 11+)和IDE(IntelliJ IDEA或Eclipse),配置环境变量。 ::: tabs @tab 基础阶段@tab 进阶阶段@tab 项目阶段Java We

sc35262的博客 631

gulp工作流

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33698823的博客 178

前后端分离及后端分层

前后端分离 回顾一下自己学JavaWeb的历程: 刚学Servlet的时候,会在response对象上写一些HTML代码输出到浏览器看效果 后来,学习到JSP了,就纯粹用Servlet做控制,JSP做视图。 JSP本质上还是一个Servlet,只不过看起来像HTML文件,在编译的时候还是会变成一个HttpJspPage类(该类是HttpServlet的一个子类) ...

Hello World 3586

webpack 打包

注意:webpack配置过程中,版本过新会出现问题,所以注意版本 webpack webpack 是现代的javascript应用的静态模块打包工具 模块打包 生成浏览器可以识别的文件 前端模块化:ES6 浏览器可以识别 commonJS AMD CMD不能识别,通过webpack 可以打包处理成浏览器可以识别的代码 并且能处理模块间的依赖关系 把CSS、图片、json 文件都可以当做模块来使用 grunt/gulp 核心是Task 前端自动化任务管理工具 没有用到模块化工具,强调前端流程的自动化 w

Z___R的博客 263
上一篇: 转一篇网页常用字体备用
下一篇: 教你怎么理解正则表达式之零宽断言(环视)
Vilien
博客等级 码龄18年 35粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值