初始化

Jsp介绍(1)

血红的双手。 提交于 2020-03-10 12:03:37
JSP(Java Server Pages) 是运行在服务端的语言 是一种动态网页开发技术 它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 是一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。 JSP文件后缀名为(*.jsp)。 JSP开发的WEB应用可以跨平台使用,既可以运行在Linux上也能运行在Window上。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。 JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。 JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。 JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。 优势: 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。 与纯 Servlets相比

Java基础知识复习一

为君一笑 提交于 2020-03-10 11:46:40
1、JDK,JRE,JVM三者之间的联系和区别 ①、JVM,即Java Virtual Machine,Java虚拟机 JVM并不能识别.java文件,只能识别.class文件,JVM能识别.class文件中的字节码指令并调用操作系统完成指定的个动作,所以JVM是Java跨平台的核心。 ②、JRE,Java Runtime Environment,Java运行时环境 JRE主要包含2个部分,JVM的标准实现和Java的一些基本类库。相比于JVM,多出来的是一部分Java类库。 ③、JDK,Java Development Kit,开发工具包 JDK是整个Java开发的核心,它集成了JRE和一些好用的小工具,例如:javac.exe,java.exe,jar.exe等。 因此,如果只是部署和运行Java程序,只需安装JRE即可;如果要开发Java程序则需要安装JDK。 2、Java跨平台的原因 跨平台的含义是不依赖于操作系统和硬件环境。Java编译器将Java编译成与平台无关的class字节码文件,然后由JVM执行class字节码文件,该字节码是与平台无关的,是介于源代码和机器指令之间的一种状态,在后续的执行中,JVM将class字节码文件解释成与平台相对应的机器指令,这样既减少了编译次数,又增强了程序的可移植性,因此被称为“一次编译,多处运行!” 3、接口和抽象类的区别 ①、接口

servlet 过滤器(Filter)和监听器(listener)

让人想犯罪 __ 提交于 2020-03-10 11:23:39
Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其 工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、 Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启 动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁,以下通过过滤编码的代码示例来了解 它的使用: 1: MyCharsetFilter.java 编码过滤器 2: package ...; 3: import ...; 4: 5: // 主要目的:过滤字符编码;其次,做一些应用逻辑判断等. 6: // Filter跟web应用一起启动 7: // 当web应用重新启动或销毁时,Filter也被销毁 8: public class MyCharsetFilter implements Filter { 9: private FilterConfig config = null; 10: 11: public void destroy() {

java servlet Listener监听器

核能气质少年 提交于 2020-03-10 11:08:18
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动 而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些 固定的对象等等。首先来看一下ServletContextListener接口的源代码: [java] view plain copy public abstract interface ServletContextListener extends EventListener{ public abstract void contextInitialized(ServletContextEvent paramServletContextEvent); public abstract void contextDestroyed(ServletContextEvent paramServletContextEvent); } 下面利用监听器对数据库连接池DataSource的初始化演示它的使用:ListenerTest.java [java] view plain copy import javax.servlet.ServletContext; import javax

C与C艹的内存管理方式

自古美人都是妖i 提交于 2020-03-10 08:57:12
  C 内存开辟出的空间一般可以分成: 代码段,数据段( 初始化的数据段, 为初始化的数据段BSS ),堆,栈   代码段 :保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写   数据段 :保存初始化的全局变量和静态变量,可读可写不可执行   BSS :未初始化的全局变量和静态变量   堆(Heap) :动态分配内存,向地址增大的方向增长,可读可写可执行     栈(Stack) :存放局部变量,函数参数,当前状态,函数调用信息等, 向地址减小的方向增长 ,非常非常重要,可读可写可执行      最特别的是 栈stack ,它和别人是反着的!在Windows平台上,栈都是从上(高)向下(低)生长的!。   关于函数调用举个例子: int i= 0x22222222; char szTest [] = "aaaa";//a的ASCII码为0x61 func(i, szTest);   当访问进入func函数时,栈中的形式为(左侧地址 右侧数据):   0x0013FCF0 0x0013FCF8   0x0013FCF4 0x22222222   0x0013FCF8 0x61616161 PS: c++中语句解析顺序和函数调用时候顺序一致:由右向左! 比如如下语句,在输入vector为空时会造成 访问越界! void numIslands(vector<vector

malloc,calloc,realloc和new的比较

故事扮演 提交于 2020-03-10 08:55:49
malloc与calloc,realloc的区别 malloc 与 calloc,realloc 都可以用来动态分配内存空间,但两者也存在着一些区别: 1. Malloc 函数有一个参数,即要分配的内存空间的大小 2. calloc 有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小 3. 如果分配内存空间成功,则两者都返回分配的内存空间的首地址函数的程序开始 4. malloc 不能初始化所分配的内存空间,而 calloc 能 5. 由于 malloc 分配的内存空间原来没有被使用过,则其中每一位可能都是零,反之,如果这部分内存曾经被使用过,在其中可能留有各种各样的数据,也就是说,使用 malloc 时(内存空间还没有被重新分配)能正常运行,但经过一段时间 ( 内存空间已经重新分配 ) 可能会出现问题 6. 函数 calloc 将分配的内存空间中的每一位初始化为 0 ,也就是说如果你为字符型或数据类型的元素分配内存空间,那么这些元素将被初始化为 0 ,如果你是为指针类型 的元素分配内存空间,那么这些元素会被初始化为空指针,如果你为实型数据分配内存,这些元素会被初始化为浮点型的 0。 7. Realloc 是给一个已经分配了内存的地址指针重新分配空间,参数包括原因的空间地址和重新申请的地址长度 Malloc 与 new 的区别 1.

类和对象系列教材 (十一)- 如何进行Java的属性初始化

别等时光非礼了梦想. 提交于 2020-03-10 06:57:04
步骤1:对象属性初始化 步骤2:类属性初始化 步骤3:练习-属性初始化 步骤4:答案-属性初始化 步骤 1 : 对象属性初始化 对象属性初始化有3种 1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块 package charactor; public class Hero { public String name = "some hero" ; //声明该属性的时候初始化 protected float hp; float maxHP; { maxHP = 200 ; //初始化块 } public Hero(){ hp = 100 ; //构造方法中初始化 } } 步骤 2 : 类属性初始化 类属性初始化有2种 1. 声明该属性的时候初始化 2. 静态初始化块 package charactor; public class Hero { public String name; protected float hp; float maxHP; //物品栏的容量 public static int itemCapacity= 8 ; //声明的时候 初始化 static { itemCapacity = 6 ; //静态初始化块 初始化 } public Hero(){ } public static void main(String[] args) {

有关listener的一些总结

ぃ、小莉子 提交于 2020-03-10 06:23:15
监听器的作用 : ServletContextListener监听器的主要作用 初始化的工作:初始化对象 初始化数据 ---- 加载数据库驱动 连接池的初始 化 加载一些初始化的配置文件 --- spring的配置文件 任务调度----定时器----Timer/TimerTask 如何设置监听器: (自定义方法实现特定的接口,并在配置文件中配置监听器) 监听器的相关概念: 事件源:被监听的对象 ----- 三个域对象 request session servletContext (域) 监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器 ---- 6+2 (自定义类) 注册监听器:将监听器与事件源进行绑定( 实现某个特定的监听接口) 响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码 ---- 程序员编写代 码( 自定义类中的方法) Demo 自动发生日祝福 public class BirthdayListener implements ServletContextListener{ @Override public void contextInitialized(ServletContextEvent sce) { //当web应用启动 开启任务调动---功能在用户的生日当前发送邮件 //开启一个定时器 Timer timer = new Timer();

浅谈PHP面向对象编程(三、构造方法和析构方法)

牧云@^-^@ 提交于 2020-03-10 05:33:44
3.0 构造方法和析构方法 从我之前的博客可以发现,实例化一个类的对象后,如果要为这个对象的属性赋值,需要直接访问该对象的属性。如果想要在实例化对象的同时就为这个对象的属性进行赋值,则可以通过构造方法来实现。构造方法是类的一个特殊成员,它会在类实例化对象时自动调用,用于对类中的成员进行初始化。与构造方法对应的是析构方法,它在对象销毁之前被自动调用。用于完成清理工作。本节将针对构造方法和析构方法进行详细讲解。 3.1 构造方法 在每个类中,都有一个构查方法,在创建对象时会被自动调用。如果在类中没有显式声明它,PHP会自动生成一一个没有参数、且没有任何操作的默认构造方法。当在类中显式声了构造方法时默认构造方法将不存在。声明构造方法和声明成员方法类似,其语法格式如下 1 修饰符 function __construct(参数列表){ 2 //初始化操作 3 } 在上述语法格式中.需要注意的是构造方法的 名称必须为 __construct 修饰符可以省略默认为pablic.接下来通过一个案例来学习构造方法的使用,如 例3-6 所示。 1 <?php 2 class Person{ 3 public $name;//成员属性$name,存储姓名 4 public $age; //成员属性$age,存储年龄 5 //声明一个构造方法,将来创建对象时,为对象的成员属性赋予初始值 6

LUA脚本语言语法-学习笔记三

时光怂恿深爱的人放手 提交于 2020-03-10 03:49:39
Lua 模块与包 模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。 Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。以下为创建自定义模块 module.lua,文件代码格式如下: -- 文件名为 module.lua -- 定义一个名为 module 的模块 module = {} -- 定义一个常量 module.constant = "这是一个常量" -- 定义一个函数 function module.func1() io.write("这是一个公有函数!\n") end local function func2() print("这是一个私有函数!") end function module.func3() func2() end return module 由上可知,模块的结构就是一个 table 的结构,因此可以像操作调用 table 里的元素那样来操作调用模块里的常量或函数。 上面的 func2 声明为程序块的局部变量,即表示一个私有函数,因此是不能从外部访问模块里的这个私有函数