摘要: Servlet执行的步骤如下:1,客户机将请求发送给服务器。2,服务器从浏览器的地址栏获得请求的信息。并根据Web.xml配置文件找到响应的Servet执行。如果找不到,会报404错误。3,如果是第一次请求,那么会实例化该Servlet,调用init()方法进行初始化,该方法在Servlet的生命周期里只执行一次。然后分配线程进行响应。如果不是第一次访问,那么会直接分配个线程进行客户的响应。4,在Servlet响应之前,服务器会产生request,response对象,并且把客户请求的信息封装到request对象中,然后把这两个对象传递给Servlet的service()方法执行。5,serv 阅读全文
posted @ 2012-04-05 11:29 JAVA教程 阅读(414) 评论(0) 推荐(1) 编辑
摘要: Servlet是用Java代码编写的服务器方软件程序,用于处理客户机和服务器之间的消息传递。JavaServletAPI为请求和响应消息定义了一个标准接口,这样Servlet就可以跨平台和跨不同的Web应用服务器间移植。Servlet可以通过动态构造一个发回客户机的响应来响应客户机请求。例如:下面是一个响应HTTP请求的Servlet.源代码如下:packagecom.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servl 阅读全文
posted @ 2012-04-05 11:27 JAVA教程 阅读(760) 评论(0) 推荐(0) 编辑
摘要: Servlet在J2EE的Web服务器(WebContainer)中运行。而应用服务器是一种特殊的Web服务器;它们扩展了Web服务器的功能,还可以处理EnterpriseBeans和Web应用程序的请求。Web服务器和应用服务器之间有明显的差异。虽然两者都可以在同一台机器上运行,Web服务器运行的是Servlet代码。服务器自己装入,执行和管理Servlet。服务器使用Java字节码解释器来运行Java程序;这叫做Java虚拟机(JVM)。大型的应用服务器会自带虚拟机,比如:Weblogic。而小型的Web服务器需要使用操作系统里安装好的虚拟机,比如:tomcat。 阅读全文
posted @ 2012-04-05 11:27 JAVA教程 阅读(203) 评论(0) 推荐(0) 编辑
摘要: Web刚刚开始用于提供服务,服务供应商们就意识到动态内容的需求。最早朝这个方向发展的技术之一Applet,专注于利用客户平台提供动态的用户体验。与此同时,开发人员也开始研究使用服务器平台达到同样的目的。最初,通用网关接口(CGI)脚本是产生动态内容的主要技术。尽管CGI脚本技术被广泛使用,它却存在着许多缺陷,包括平台相关和缺少控制性。为了解决这些缺陷,出现了JavaServlet技术。它以可移植的方式提供了动态的,基于用户的网页内容。JavaServlet是用Java编程语言实现的类。它扩展了通过请求——响应模式访问的应用程序的服务器端的性能。尽管Servlet可以响应任何类型的请求,但通常它 阅读全文
posted @ 2012-04-05 11:26 JAVA教程 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 《D:\\wuhan\\test.xml》<?xml version="1.0" encoding="GB2312"?><RESULT> <VALUE><NO>A1234</NO><NO>A1234aaaaaaaaaa</NO><ADDR>深圳罗湖</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>深圳南山</ADDR> </VAL 阅读全文
posted @ 2012-03-27 09:57 JAVA教程 阅读(257) 评论(0) 推荐(0) 编辑
摘要: package com.xml;import java.io.*;import java.util.*;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;public class JDom { public static void main(String arge[]) { long lasting = System.currentTimeMillis(); try { SAXBuilder builder = new SAXBuilder(); Docume... 阅读全文
posted @ 2012-03-27 09:56 JAVA教程 阅读(344) 评论(0) 推荐(0) 编辑
摘要: //以下代码统计url.xml文件中每个标签出现的次数package com.app;import java.io.File;import java.util.Enumeration;import java.util.Hashtable;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler; 阅读全文
posted @ 2012-03-27 09:56 JAVA教程 阅读(515) 评论(0) 推荐(0) 编辑
摘要: JDBC开发中需要连接到不同的数据库,利用XML文件保存不同类型数据库的连接参数,并使用统一的程序解析XML以取得相应的连接参数。<<Db.xml>><?xml version="1.0" encoding="UTF-8"?><DBS> <DB> <type>Oracle</type> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@loca 阅读全文
posted @ 2012-03-27 09:55 JAVA教程 阅读(296) 评论(0) 推荐(0) 编辑
摘要: <<persons.xml>><?xml version="1.0" encoding="UTF-8"?><persons> <person> <name>andy</name> <age>45</age> <tel>13632940025</tel> <sex>m</sex> </person></persons><<WriteXmlTest.xml>> 阅读全文
posted @ 2012-03-27 09:54 JAVA教程 阅读(470) 评论(0) 推荐(0) 编辑
摘要: Object类中提供了用于线程通信的方法:wait()和notify(),notifyAll()。如果线程对一个指定的对象x发出一个wait()调用,该线程会暂停执行,此外,调用wait()的线程自动释放对象的锁,直到另一个线程对同一个指定的对象x发出一个notify()调用。为了让线程对一个对象调用wait()或notify(),线程必须锁定那个特定的对象。也就是说,只能在它们被调用的实例的同步块内使用wait()和notify()。根据以上内容,修改Person类如下:package com.itjob;public class Person { private String name = 阅读全文
posted @ 2012-03-12 15:28 JAVA教程 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 先看线程不同步的情况://数据类package com.itjob;public class Person { private String name = "王非"; private String sex = "女"; public void put(String name, String sex) { this.name = name; this.sex = sex; } public void get() { System.out.println(name + "----->" + sex); } }//用来显示Person 阅读全文
posted @ 2012-03-12 15:26 JAVA教程 阅读(193) 评论(0) 推荐(0) 编辑
摘要: class TestThread { public static void main(String[] args) { Data data = new Data(); //创建四个线程 Thread thadd1 = new ThreadAdd(data, "thadd1"); Thread thadd2 = new ThreadAdd(data, "thadd2"); Thread thsub1 = new ThreadSub(data, "thsub1"); Thread thsub2 = new ThreadSub(data, 阅读全文
posted @ 2012-03-12 15:08 JAVA教程 阅读(278) 评论(0) 推荐(0) 编辑
摘要: class TestThread { public static void main(String[] args) { Data data = new Data(); //创建四个线程 Thread thadd1 = new ThreadAdd(data, "thadd1"); Thread thadd2 = new ThreadAdd(data, "thadd2"); Thread thsub1 = new ThreadSub(data, "thsub1"); Thread thsub2 = new ThreadSub(data, 阅读全文
posted @ 2012-03-12 15:06 JAVA教程 阅读(412) 评论(0) 推荐(0) 编辑
摘要: //减数据的线程class ThreadSub extends Thread { //线程所操作的关键数据 Data data; public ThreadSub(Data data, String name) { //给当前线程命名 super(name); this.data = data; } //线程执行时所调用的方法,即线程所执行的代码 public void run() { for (int i = 0; i < 20; i++) { data.sub(); //打印出哪个线程执行的加操作 System.out.println(Thread.currentThr... 阅读全文
posted @ 2012-03-12 15:05 JAVA教程 阅读(134) 评论(0) 推荐(0) 编辑
摘要: n创建数据类//数据类class Data { private int k; public void add() { k++; } public void sub() { k--; } public int getK() { return k; }}创建加数据的线程//加数据的线程class ThreadAdd extends Thread { //线程操作的数据 Data data; public ThreadAdd(Data data, String name) { //给当前线程命名 super(name); this.data = data; } //线程执行时所调用的方法... 阅读全文
posted @ 2012-03-12 15:04 JAVA教程 阅读(836) 评论(0) 推荐(0) 编辑
摘要: Java1.0刚出现时,包含一个用于基本GUI编程的类库,Sun把它叫做抽象窗口工具箱(AbstractWindowToolkit,AWT)。AWT库处理用户界面元素的方法是把这些元素的创建及其行为委托给每个目标平台(Windows,Solaris,Macintosh等)的本地GUI工具进行处理。不同平台的AWT用户界面存在着不同的bug。程序员们必须在每一个平台上测试他们的应用程序,他们因此嘲笑AWT是"一次编写,到处调试"。1996年,Netscape开发了一个工作方式完全不同的GUI库,并把它叫做IFC(InternetFoundationClasses,因特网基础类 阅读全文
posted @ 2012-03-09 17:10 JAVA教程 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 1、程序(Program)程序是一个具体的文件,是计算机指令的集合,存储在磁盘上,如EXE文件。2、进程(Process)进程:是一个正在运行程序的实例,是程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,程序不占用系统的运行资源。进程由两个部分组成: 内核对象:操作系统用它来管理进程。是系统用来存放进程的统计信息的地方。地址空间:包含所有可执行模块或DLL模块的代码和数据,以及动态内存所分配的空间,如堆空间和栈空间。进程是不活泼的。进程从来不执行任何东西,它只是线 阅读全文
posted @ 2012-03-08 15:25 JAVA教程 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 方法覆盖要注意两点:n访问权限不能比父类的弱n抛出的异常不能比父类的多。(注意多并不是数量上的多,而是父类方法抛出的异常必须包含子类覆盖方法抛出的异常)请看下例:class TestMyException2 { public static void main(String[] args) { ABC abc = new ABD(); try { abc.a(5); } catch (EA e) { e.test(); } }}class EA extends Exception // 创建自己的编译时异常{ String s; public EA(String s) { th... 阅读全文
posted @ 2012-03-06 16:35 JAVA教程 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 在Java编程语言中,异常有三种分类。java.lang.Throwable类充当所有对象的父类,可以使用异常处理机制将这些对象抛出并捕获。在Throwable类中定义方法来检索与异常相关的错误信息,并打印显示异常发生的栈跟踪信息。它有Error和Exception两个基本子类。Throwable类不能使用,而使用子类异常中的一个来描述任何特殊异常。每个异常的目的描述如图:Error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。RuntimeException表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。比如,如 阅读全文
posted @ 2012-03-06 16:32 JAVA教程 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 在Java编程语言中,异常类定义程序中可能遇到的轻微的错误条件。你可以写代码来处理异常,并继续执行程序,而不需要让程序中止。在程序执行中,任何中断正常程序流程的条件都是异常。例如,发生下列情况时,会出现异常:想打开的文件不存在网络连接中断操作数超出预定范围非常感兴趣地正在装载的类文件丢失在Java编程语言中,错误类定义被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让程序中断。Java编程语言实现C++异常来帮助建立弹性代码。在程序中发生错误时,发现错误的方法能抛出一个异常到其调用程序,发出已经发生问题的信号。然后,调用方法捕获抛出的异常,在可能时,再恢复回来。这个方案 阅读全文
posted @ 2012-03-06 16:25 JAVA教程 阅读(250) 评论(0) 推荐(0) 编辑