JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
性能更加优越,JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API。
JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet.
当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,重写jspInit()方法就行。
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。
void _jspService(HttpServletRequest request,HttpServletResponse response){
// Todo
}
JSP生命周期的销毁阶段描述了当一个JSP网页从容器中被移除时所发生的一切。jspDestroy()方法在JSP中等价于servlet中的销毁方法。当您需要执行任何清理工作时复写jspDestroy()方法。
public void jspDestroy(){
//清理
}
JSP生命周期代码测试:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jsp生命周期</title>
</head>
<body>
<%!
//声明变量
private int initCnt = 0;
private int serviceCnt = 0;
private int destroyCnt = 0;
%>
<%!
//初始化方法
public void jspInit(){
initCnt++;
System.out.println("jspInit(): JSP被初始化了"+initCnt+"次");
}
//销毁方法
public void jspDestroy(){
destroyCnt++;
System.out.println("JSP被销毁了"+destroyCnt+"次");
}
%>
<%
serviceCnt++;
System.out.println("Jsp响应了"+serviceCnt+"次");
String initString="初始化次数 : "+initCnt;
String serviceString="响应客户请求次数 : "+serviceCnt;
String destroyString ="销毁次数 : "+destroyCnt;
%>
<h1>结果如下:</h1>
<p><%= initString%></p>
<p><%= serviceString%></p>
<p><%= destroyString%></p>
</body>
</body>
</html>
初始化次数 : 1
响应客户请求次数 : 1
销毁次数 : 0
1.<% %>叫做脚本片段,其中写的内容会翻译在Servlet的Service方法中,显然我们可以在Service方法中定义局部变量或者调用其他方法,但是不能在Service中再定义其他的方法,也就是我们可以在<%%>中定义局部变量或者调用方法,但不能定义方法。在jsp页面可以有多个脚本片段,但是多个脚本片段之间要保证结构完整。
2.<%!%>称作声明,其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。
3.<%=%>称作jsp表达式,用于将已经声明的变量或者表达式输出到网页上面。
4.直接写在jsp页面<body></body>中的代码称作模板元素,将来会Servlet的Service方法out.write("___")中,作为输出内容。
编写与其等价的XML语句<jsp:scriptlet>代码片段</jsp:scriptlet>。
<%-- jsp注释 --%>注释内容不会被发送
文章浏览阅读553次。支持向量机前言一、优化目标二、大间隔分类器1、直观理解2、数学原理三、核函数四、使用SVM总结前言到目前为止,我们已经见过一系列不同的学习算法。在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平。比如:你为学习算法所设计的特征量的选择,以及如何选择正则..._svm普遍使用的准则描述不正确的是:( )(n为特征数,m为训练样本数。)
文章浏览阅读4.5k次。学习allegro,画一块板子时,老师给了个封装库,可惜里面没有device文件,导入第三方网标时却必须有。老师让一个一个的创建,太麻烦,随想办法搞了个自动创建的脚本。思路如下:一、allegro 中录制创建device文件的脚本;file -> script ; record; 开始录制脚本file -> Create Device;创建device文件ctrl + s 保存_allegro 自动批量生成device文件脚本
文章浏览阅读6.1k次,点赞9次,收藏55次。什么是 LVS?LVS 是 Linux Virtual Server 的简写,也就是 Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。官方网站:http://www.linuxvirtualserver.org,LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了高效的解决方法,现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标_lvs
文章浏览阅读2.6k次,点赞2次,收藏25次。相关系数总体 ——所要考察对象的全部个体叫做总体.我们总是希望得到总体数据的一些特征(例如均值方差等)样本 ——从总体中所抽取的一部分个体叫做总体的一个样本.计算这些抽取的样本的统计量来估计总体的统计量:例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度)。例子:我国10年进行一次的人口普查得到的数据就是总体数据。大家自己在QQ群发问卷叫同学帮忙填写得到的数据就是样本数据这里的相关系数只是用来衡量两个变量线性相关程度的指标;也就是说,你必须先确认这两个_线性相关系数举例
文章浏览阅读391次。Python 语言1. 基本概念简介,快速,门槛低Python的创始人为吉多*范罗苏姆 (Gudio van Rossum)吉多 龟书 大神Python的起源可以追溯到1989年12月,由Guido van Rossum(Python社区的仁慈独裁者)创建,作为一个在圣诞节期间工作的爱好项目,Python的名字不是取义于大蟒蛇,而是来自于英国喜剧团Monty Python。Python诞生于ABC语言,是van Rossum工作的荷兰CWI研究所的终止项目,van Rossum也在研究叫Amoe
文章浏览阅读2.7k次,点赞6次,收藏14次。這是一篇 BERT 科普文,帶你直觀理解並實際運用現在 NLP 領域的巨人之力。 如果你還有印象,在自然語言處理(NLP)與深度學習入門指南裡我使用了 LSTM 以及 Google 的語言代表模型 BERT 來分類中文假新聞。而最後因為 BERT 本身的強大,我不費吹灰之力就..._!test -d bertviz_repo && echo
文章浏览阅读664次。#!/usr/bin/env python# -*- coding: utf-8 -*-from sqlalchemy import Column, String, create_engine, Integer, Date, Float, ForeignKeyfrom sqlalchemy.orm import sessionmaker, relationshipfrom sqlalch..._python里sqlalchemy如何操作mysql数据库
文章浏览阅读1.1k次。JNIEXPORT jboolean JNICALL Java_com_company_BossLi_registerCallback (JNIEnv *env, jobject obj){ BOOL bRet = FALSE; bRet = CModuleAddCallBack(hMoudle, postCallBack); return
文章浏览阅读896次,点赞2次,收藏8次。参考文章:1.人脸识别与神经风格转换 2.神经风格转换编程作业神经网络风格中遇到的问题已经解决了并将解决方案写在了备注里面,但是人脸识别那里运行到database就出错了,目前仍没有找到解决方案,报错信息:Traceback (most recent call last): File "G:/Project/PYTHON/Demo01/Deep_Learning/test4_4/人脸识别.py", line 108, in <module> database["daniel_吴恩达 人脸识别 数据database出错
文章浏览阅读4.7w次,点赞5次,收藏27次。首先master和slaves的节点正常http://server71:50070 (HDFS管理界面)正常可以打开http:// server71:8088 yarn管理界面打不开Master(server71)Slaves(server72,73,74)[root@server71 bin]# jps2271 NameNode_hadoop 为什么8088访问不了
文章浏览阅读3k次。在谈设计Oracle分区表之间先区分一下分区表和表空间的个概念:表空间:表空间是一个或多个数据文件的集合,所有数据对象都存放在指定的表空间中,但主要存放表,故称表空间。分区表:分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,SQL语句就可以访问的操作某一个分区而不是整个表,因而提高管理的效率。分区对于数据仓_如何设计分区表
文章浏览阅读205次。将多张图片,按照规格合成一张图片。_php 图片合成