??xml version="1.0" encoding="utf-8" standalone="yes"?>免费黄色成人,福利在线播放,av三级在线播放http://www.aygfsteel.com/iNeo/category/5413.htmlzh-cnFri, 02 Mar 2007 06:42:41 GMTFri, 02 Mar 2007 06:42:41 GMT60用XML和XSL来生成动态页面[Z]http://www.aygfsteel.com/iNeo/archive/2005/12/07/22835.html只牵q只?/dc:creator>只牵q只?/author>Wed, 07 Dec 2005 03:47:00 GMThttp://www.aygfsteel.com/iNeo/archive/2005/12/07/22835.htmlhttp://www.aygfsteel.com/iNeo/comments/22835.htmlhttp://www.aygfsteel.com/iNeo/archive/2005/12/07/22835.html#Feedback0http://www.aygfsteel.com/iNeo/comments/commentRss/22835.htmlhttp://www.aygfsteel.com/iNeo/services/trackbacks/22835.html

xmlQ可扩展标记语言Q看h可能像某Uw3c标准——现在没有什么实际媄响,即以后能派上用场,也是很久以后的事。但实际上,它现在已l得C应用。所以,不要{到xml已被加进了你最喜爱的html~辑器中才开始用它。它现在可以解军_U内部问题和b2bpȝ问题?

在sparks.comQ我们用xml来标准化从java对象到html数据昄{不同系l之间的数据表示?

特别需要指出的是,我们发现Q只要以非常基本的xmll构来实现标准化Q就可以更容易地׃n和操作数据。在q一q程中,我们发现了用xml的很多有效方法。下面详l介l我们现在的应用情况?

标准?BR>在用xml之前Q徏立与你要使用的信息不同的xml数据格式?

生成动态xml
从数据库中生成htmlq不新鲜Q但生成xml却很新鲜。这里我们介l具体的生成步骤?

用xsl作ؓ模板语言
xslQ可扩展样式表语aQ是定义xml数据昄格式的好ҎQ如果写成几个静态模板会更有效?

生成html
xml加上xslq于html。这听v来似乎不对,但用h见的我们的html面其实是xml和xsl共同产生的效果?


一、标准化

xml的能力来自于它的灉|性。但不幸的是Q它有时太灵zMQ以至于你会面对一个空白的面Q发愁该怎么解决问题?

在Q何xml的项目中Q第一步工作都是创建标准的数据格式。ؓ此你要作Z下决定:

?要涉及哪些数?BR>?是否要用dtdQ文件类型定义)
?是否要用domQ文档对象模型)或saxQxml的简化apiQ解?/P>

定数据Q?BR>因ؓ没有标准的xml格式Q开发者可以自由地开发自q格式。然而,如果你的格式只能被一个应用程序识别,那么你只能运行这个程序来使用该格式。如果还有其他程序也能读懂你的xml格式Q那昄会更有帮助。如果某个xml格式被修改,则用它的系l可能也需要被修改Q所以你应该建立可能完整的格式。因为大多数pȝ忽略它们无法识别的标{,所以改变一个xml格式的最安全的方法是d标签Q而不是修Ҏ{?

单击此处查看xml数据格式实例

在sparks.comQ我们查看了不同的品展C需要的所有品数据。尽ƈ不是所有的面都用全部数据,但我们还是由此开发出适用于所有数据的非常完整的xml数据格式。例如,我们的品明l信息页面显C的数据要比产品览面多。然而,我们在这两种情况下仍然用相同的数据格式Q因为每个页面的xsl模板都只使用它所需要的字段?

是否使用dtd
在sparks.comQ我们用组l良好的xmlQ而不使用仅仅是正的xmlQ因为前者不需要dtd。dtd在用Ld看到面之间加入了一个处理层。我们发现这一层需要太多的处理。当Ӟ在以xml格式与其他公叔R信Ӟ使用dtdq是很不错的。因为dtd能在发送和接受时能保证数据l构正确?

选择解析引擎
现在Q可以用的解析引擎有好几个。选择哪一个几乎完全取决于你的应用需要。如果你军_使用dtdQ那么这个解析引擎必能使你的xml被dtd验证。你可以验证另攑ֈ一个进E中Q但那样会媄响性能?

sax和dom是两个基本的解析模型。saxZ事gQ所以在xml被解析时Q事件被发送给引擎。接下来Q事件与输出文g同步。dom解析引擎为动态xml数据和xsl样式表徏立层ơ树状结构。通过随机讉Kdom树,可以提供xml数据Q就象由xsl样式表来军_一栗sax模型上的争论主要集中于对doml构的内存降低过度和加快xsl样式表解析时间羃短方面?

然而,我们发现使用sax的很多系lƈ没有充分发挥它的能力。这些系l用它来建立doml构q过doml构来发送事件。用q种ҎQ在Mxml处理之前必须从样式表中徏立domQ所以性能会下降?

二、生成动态xml

一旦徏立了xml格式Q我们需要一U能够将其从数据库中动态移植的Ҏ?

生成xml文档相对来说比较单,因ؓ它只需要一个可以处理字W串的系l。我们徏立了一个用java servlet、enterprise javabean server、jdbc和rdbmsQ关pd数据库管理系l)的系l?

?servlet通过把生成xml文档的Q务交lenterprise javabean (ejb)来处理品信息请求?BR>?ejb使用jdbc从数据库里查询所需的品详l信息?BR>?ejb生成xml文gq把它传递给servlet?BR>?servlet调用解析引擎Q从xml文g和静态的xsl样式表中创徏html输出?

Q有关xsl应用的其他信息,请参阅用xsl作ؓ模板语言。)

生成xml的例?BR>在java中创建xml文档字符串的真正代码可以分成几个Ҏ和类?

启动xml生成q程的代码放在ejbҎ里。这一实例会立卛_Z个stringbufferQ以便存储生成的xml字符丌Ӏ?

stringbuffer xml = new stringbuffer();
xml.append(xmlutils.begindocument("/browse_find/browse.xsl", "browse", request));
xml.append(product.toxml());
xml.append(xmlutils.enddocument("browse");
out.print(xml.tostring());


后面的三个xml.append()变元本n是对其他方法的调用?
产生文g?BR>W一个附加方法调用xmlutilscL产生xml文g头。我们的java servlet中的代码如下Q?

public static string begindocument(string stylesheet, string page)
{
    stringbuffer xml = new stringbuffer();
    xml.append("\n")
    .append("    .append(stylesheet).append("\"")
    .append(" type =\"text/xsl\"?>\n");
  xml.append("<").append(page).append(">\n");
  return xml.tostring();
}

q段代码生成了xml文g头??xml>标签把本文g定义为支?.0版本的xml文g。第二行代码指向用以昄数据的正样式表的位|。最后包括进ȝ是项U标{(本实例中?BROWSE>Q。在文g末尾Q只?BROWSE>标签需要被关闭?

填入产品信息
完成了文件头后,控制Ҏ会调用java对象来生它的xml。本例中调用的是product对象。product对象使用两个Ҏ来生它的xml表示。第一个方法toxml()通过产生?/PRODUCT>标签来徏立product节点。然后它会调用internalxml()Q这样就能提供品xml所需的内宏Vinternalxml()是一pd的stringbuffer.append()调用。stringbuffer也被转换成字W串q返回给控制Ҏ?
public string toxml()
    {
    stringbuffer xml = new stringbuffer("\n");
    xml.append(internalxml());
    xml.append("
\n");
    return xml.tostring();
    }

public string internalxml()
    {
    stringbuffer xml = new
    stringbuffer("\t")
        .append(producttype).append("\n");
    xml.append("\t").append(idvalue.trim())
        .append("\n");
    xml.append("\t").append(idname.trim())
        .append("\n");
    xml.append("\t").append(page.trim())
        .append("\n");
?
      xml.append("\t").append(amount).append("\n");
    xml.append("\t").append(vendor).append("\n");
    xml.append("\t\n");
    xml.append("\t").append(pubdesc).append("\n");
    xml.append("\t").append(vendesc).append("\n";
?
    return xml.tostring();
}


关闭文g
最后,xmlutils.enddocument()Ҏ被调用。这个调用关闭xml标签Q本例中为)Qƈ最l完成架构好的xml文g。来自控制方法的整个stringbuffer也{换成字符Ԍq返回给处理最初httph的servlet?

三、用xsl作ؓ模板语言

Z得到html输出Q我们把生成的xml文g和控制xml数据如何表示的xsl模板相结合。我们的xsl模板q心组l的xsl和html标签l成?

开始徏模板
我们的xsl模板开始部分与下面q段代码cM。第一行代码ؓ必需代码Q将本文件定义ؓxsl样式表。xmlns:xsl=属性引用本文g所使用的xml名称I间Q而version=属性则定义名称I间的版本号。在文g的末,我们关闭标签?

??XML:NAMESPACE PREFIX = XSL />开始的W二行代码确定了xsl模板的模式。match属性是必需的,在这里指向xml标签。在我们的系l里Q?BASKETPAGE>标签里包?PRODUCT> 标签Q这使得xsl模板可以讉K嵌在标签内的产品信息。我们又一ơ必d文g末尾关闭标签?

接下来,我们来看一看组l良好的html。由于它被xml解析引擎处理Q所以必ȝ合组l良好的xml的所有规则。从本质上来Ԍq意味着所有的开始标{ֿL对应的结束标{。例如,通常不被l束?

标签Q必ȝ

关闭?
http://www.w3.org/1999/xsl/transform"
version="1.0">?br>

在模板的M内,有很多xsl标签被用于ؓ数据表示提供逻辑。下面解释两个常用的标签?
choose
标签cM于传l编E语a中if-then-elsel构的开始部分。在xsl中,choose标签表示在代码进入的部分中,赋值将触发动作的发生。拥有赋值属性的标签跟在choose标签后面。如果赋值是正确的,位于的开始和l束标签之间的内容将被用。如果赋值错误,׃?XSL:OTHERWISE>的开始和l束标签之间的内宏V整个部分用来结束?

在这个例子里Qwhen标签会ؓquantity标签查xml。如果quantity标签里含有gؓ真的error属性,quantity标签会昄列在下面的表格单元。如果属性的g为真Qxsl会昄otherwise标签间的内容。在下面的实例里Q如果error属性不真,则什么都不会被显C?



]]>
J2EE学习[z]http://www.aygfsteel.com/iNeo/archive/2005/12/05/22491.html只牵q只?/dc:creator>只牵q只?/author>Mon, 05 Dec 2005 00:56:00 GMThttp://www.aygfsteel.com/iNeo/archive/2005/12/05/22491.htmlhttp://www.aygfsteel.com/iNeo/comments/22491.htmlhttp://www.aygfsteel.com/iNeo/archive/2005/12/05/22491.html#Feedback0http://www.aygfsteel.com/iNeo/comments/commentRss/22491.htmlhttp://www.aygfsteel.com/iNeo/services/trackbacks/22491.html  首先我们需要知道Java和J2EE是两个不同概念,Java不只是指一U语aQ已l代表与微Y不同的另外一个巨大阵营,所以Java有时是指一UY件系l的派Q当然目前主要是.NET和Java两大L体系?/P>

  J2EE可以说指Java在数据库信息pȝ上实玎ͼ数据库信息系l从早期的dBase、到Delphi/VB{C/Sl构Q发展到B/S(Browser览?Server服务?l构Q而J2EE主要是指B/Sl构的实现?/P>

  J2EE又是一U框架和标准Q框架类似API、库的概念,但是要超出它们。如果需要详l了解框Ӟ可先从设计模式开始学习?/P>

  J2EE是一个虚的大的概念,J2EE标准主要有三U子技术标?WEB技术、EJB技术和JMSQ谈到J2EE应该说最l要落实到这三个子概念上?/P>

  q三U技术的每个技术在应用旉涉及两个部分:容器部分和应用部分,Web容器也是指Jsp/Servlet容器Q你如果要开发一个Web应用Q无论是~译或运行,都必要有Jsp/Servlet库或API支持(除了JDK/J2SE以外)?/P>

  Web技术中除了Jsp/Servlet技术外Q还需要JavaBeans或Java Class实现一些功能或者包装携带数据,所以Web技术最初裸体简UCؓJsp/Servlet+JavaBeanspȝ?/P>

  谈到JavaBeans技术,涉及到lg构g技?component)Q这是Java的核心基部分Q很多Y件设计概?设计模式)都是通过JavaBeans实现的?/P>

  JavaBeans不属于J2EE概念范畴中,如果一个JavaBeans对象被Web技?也就是Jsp/Servlet)调用Q那么JavaBeansp行在J2EE的Web容器?如果它被EJB调用Q它p行在EJB容器中?/P>

  EJB(企业JavaBeans)是普通JavaBeans的一U提升和规范Q因Z业信息系l开发中需要一个可伸羃的性能和事务、安全机Ӟq样能保证企业系l^滑发展,而不是发展到一U规模重新更换一套Y件系l?/P>

  xQJavaBeanslg发展到EJB后,q不是说以前的那UJavaBeans形式消׃Q这p然Ş成了两种JavaBeans技?EJB和POJOQPOJO完全不同于EJB概念Q指的是普通JavaBeansQ而且q个JavaBeans不依附某U框Ӟ或者干脆可以说:q个JavaBeans是你个应用程序单独开发创建的?/P>

  J2EE应用pȝ开发工h很多:如JBuilder、Eclipse{,q些IDE首先?A class=bluekey target=_blank>Java开发工?/A>Q也是_它们首要基本功能是可以开发出JavaBeans或Java classQ但是如果要开发出J2EEpȝQ就要落实到要么是Web技术或EJB技术,那么有可能要一些专门模块功?如eclipse需要lomboz插g)Q最重要的是Q因为J2EEpȝ区分为容器和应用两个部分Q所以,在Q何开发工具中开发J2EE都需要指定J2EE容器?/P>

  J2EE容器分ؓWEB容器和EJB容器Q?A class=bluekey target=_blank>Tomcat/Resin是Web容器;JBoss是EJB容器+Web容器{,其中Web容器直接使用Tomcat实现的。所以你开发的Web应用E序可以在上面两U容器运行,而你开发的Web+EJB应用则只可以在JBoss服务器上q行Q商业品Websphere/Weblogic{和JBoss属于同一U性质?/P>

  J2EE容器也称为J2EE服务器,大部分时它们概念是一致的?/P>

  如果你的J2EE应用pȝ的数据库q接是通过JNDI获得Q也是说是从容器中获得Q那么你的J2EE应用pȝ基本与数据库无关Q如果你在你的J2EE应用pȝ耦合了数据库JDBC驱动的配|,那么你的J2EE应用pȝ有数据库概念色彩,作ؓ一个成熟需要推q的J2EE应用pȝQ不推荐和具体数据库耦合Q当然这其中如何保证J2EE应用pȝq行性能又是体现你的设计水^了?/P>

  衡量J2EE应用pȝ设计开发水q高低的标准是:解耦?你的应用pȝ各个功能是否能够dq?是否不相互依赖,也只有这P才能体现可维护性、可拓展性的软g设计目标?

?c?/DIV>

]]>JSP里request变量列表http://www.aygfsteel.com/iNeo/archive/2005/12/01/22114.html只牵q只?/dc:creator>只牵q只?/author>Thu, 01 Dec 2005 05:55:00 GMThttp://www.aygfsteel.com/iNeo/archive/2005/12/01/22114.htmlhttp://www.aygfsteel.com/iNeo/comments/22114.htmlhttp://www.aygfsteel.com/iNeo/archive/2005/12/01/22114.html#Feedback0http://www.aygfsteel.com/iNeo/comments/commentRss/22114.htmlhttp://www.aygfsteel.com/iNeo/services/trackbacks/22114.html<%
out.println("Protocol: " + request.getProtocol() + " ");
out.println("Scheme: " + request.getScheme() + " ");
out.println("Server Name: " + request.getServerName() + " " );
out.println("Server Port: " + request.getServerPort() + " ");
out.println("Protocol: " + request.getProtocol() + " ");
out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo() + " ");
out.println("Remote Addr: " + request.getRemoteAddr() + " ");
out.println("Remote Host: " + request.getRemoteHost() + " ");
out.println("Character Encoding: " + request.getCharacterEncoding() + " ");
out.println("Content Length: " + request.getContentLength() + " ");
out.println("Content Type: "+ request.getContentType() + " ");
out.println("Auth Type: " + request.getAuthType() + " ");
out.println("HTTP Method: " + request.getMethod() + " ");
out.println("Path Info: " + request.getPathInfo() + " ");
out.println("Path Trans: " + request.getPathTranslated() + " ");
out.println("Query String: " + request.getQueryString() + " ");
out.println("Remote User: " + request.getRemoteUser() + " ");
out.println("Session Id: " + request.getRequestedSessionId() + " ");
out.println("Request URI: " + request.getRequestURI() + " ");
out.println("Servlet Path: " + request.getServletPath() + " ");
out.println("Accept: " + request.getHeader("Accept") + " ");
out.println("Host: " + request.getHeader("Host") + " ");
out.println("Referer : " + request.getHeader("Referer") + " ");
out.println("Accept-Language : " + request.getHeader("Accept-Language") + " ");
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding") + " ");
out.println("User-Agent : " + request.getHeader("User-Agent") + " ");
out.println("Connection : " + request.getHeader("Connection") + " ");
out.println("Cookie : " + request.getHeader("Cookie") + " ");
out.println("Created : " + session.getCreationTime() + " ");
out.println("LastAccessed : " + session.getLastAccessedTime() + " ");

%>

q行l果Q?

Protocol: HTTP/1.1
Scheme: http
Server Name: 192.168.0.1
Server Port: 8080
Protocol: HTTP/1.1
Server Info: JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.)
Remote Addr: 192.168.0.106
Remote Host: abc
Character Encoding: null
Content Length: -1
Content Type: null
Auth Type: null
HTTP Method: GET
Path Info: null
Path Trans: null
Query String: null
Remote User: null
Session Id: To1010mC466113890241879At
Request URI: /c.jsp
Servlet Path: /c.jsp
Accept: */*
Host: 192.168.0.1:8080
Referer : null
Accept-Language : zh-cn
Accept-Encoding : gzip, deflate
User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Connection : Keep-Alive
Cookie : SESSIONID=To1010mC466113890241879At
Created : 965764522168
LastAccessed : 965775587088?/P>

]]>
Tomcat5的web应用启动序详解[转]http://www.aygfsteel.com/iNeo/archive/2005/11/30/21987.html只牵q只?/dc:creator>只牵q只?/author>Wed, 30 Nov 2005 08:28:00 GMThttp://www.aygfsteel.com/iNeo/archive/2005/11/30/21987.htmlhttp://www.aygfsteel.com/iNeo/comments/21987.htmlhttp://www.aygfsteel.com/iNeo/archive/2005/11/30/21987.html#Feedback0http://www.aygfsteel.com/iNeo/comments/commentRss/21987.htmlhttp://www.aygfsteel.com/iNeo/services/trackbacks/21987.html

Tomcat5的web应用启动序详解

cleverpig 发表?005-11-29 作?cleverpig 来自:Matrix 评h:3/1 评论?0 点击?211 [收藏]
摘要Q?BR>应用Tomcat对于我们来讲实在是司I惯了,但是对于每个使用者来?应该了解其运转的机制也是必不可少?本h在维?apache开源项?论坛旉到此问题Qƈ略作研究Q望与大家共讨、分享?BR>

本文Matrix怹镜像Q?A >http://www.matrix.org.cn/resource/article/44/44001_Tomcat5_web_start.html
说明Q本文可能由Matrix原创Q也可能由Matrix的会员整理,或者由
Matrix的Crawler在全球知名Java或者其他技术相关站Ҏ取ƈ怹
保留镜像QMatrix会保留所有原来的出处URLQƈ在显著地方作明,
如果你发觉出处URL有误Q请联系MatrixҎ.
Tomcat5的web应用启动序详解

作者:cleverpig


版权声明Q本文可以自p{载,转蝲时请务必以超链接形式标明文章原始出处和作者信息及本声?/SPAN>
作?cleverpig(http://blog.matrix.org.cn/page/cleverpig)
原文:[http://www.matrix.org.cn/resource/article/43/43987_JGroups.html]http://www.matrix.org.cn/resource/article/43/43987_JGroups.html[/url]
关键?tomcat,web,启动序

摘要Q?/SPAN>

   应用Tomcat对于我们来讲实在是司I惯了,但是对于每个使用者来?应该了解其运转的机制也是必不可少?本h在维?apache开源项?论坛旉到此问题Qƈ略作研究Q望与大家共讨、分享?BR>
一、配|自动部|时的web应用加蝲序Q?/SPAN>

   当tomcat的server.xml中对虚拟LQHostQ配|中autoDeploy=true和unpackWARs=trueӞ如:
server.xml

...
<Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
...


   下面的部|顺序在Tomcat启动时发生:

   1。Q何具有上下文描述W(Context DescriptorsQ的web应用首先被部|Ԍtomcat?CATALINA_HOME/conf/[enginename]/[hostname]/目录中罗列出所有的以xml为结文gQ将其作为web应用的上下文描述W,q按照文件名排序逐一部v?BR>
   注意作ؓ上下文描q符的文件名可以不ؓweb应用名,因ؓtomcat会读取其中的内容来判断,但是改变上下文描q符的文件名会部v的顺序发生变化?/SPAN>

如:
$CATALINA_HOME\conf\Catalina\localhost\devoffer.xml


<?xml version='1.0' encoding='utf-8'?>
<Context docBase="E:/eclipse3.1RC3/workspace/devOfferProject/web" path="/devoffer" useNaming="false" workDir="work\Catalina\localhost\devoffer">
</Context>


上面的上下文描述W说明了devoffq个web应用的docBase和部|的path以及其工作目录?BR>
   2。另外,位于$CATALINA_HOME/webapps/[webappname]/META-INF/目录中的context.xml也作Z下文描述W?在处理了上文所说的位于$CATALINA_HOME/conf/[enginename]/[hostname]/目录中的上下文描q符?tomcat部|这些在web应用的META-INF目录中的context.xml。加载顺序按照应用名的字母顺序?BR>
   3。没有上下文描述W的已经被展开的web应用按照其应用名顺序逐个被部|Ԍ如果其中的一个web应用兌着一个在appBaseQ一般ؓ"$CATALINA_HOME/webapps"目录Q中的WAR文gQ则当WAR文g比相对应的被展开的web应用新时Q那个被展开的web应用被删除QtomcatWAR文g展开q|作为替换旧的web应用?BR>
   4。在执行?-3步后Qtomcat部|在appBase中的WAR文g?BR>
   h意:在每个应用被部v后,tomcat为没有上下文描述W的web应用建立上下文描q符?/SPAN>


二、非自动部v配置下的应用加蝲序Q?/SPAN>

   此时完全按照在tomcat manager中h工部|顺序?BR>
三、参考资源:
       http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html

四、参加讨论:
http://www.matrix.org.cn/thread.shtml?topicId=32324&forumId=17


]]>
你能q关?J2EE面试?/title><link>http://www.aygfsteel.com/iNeo/archive/2005/11/29/21808.html</link><dc:creator>只牵q只?/dc:creator><author>只牵q只?/author><pubDate>Tue, 29 Nov 2005 04:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/iNeo/archive/2005/11/29/21808.html</guid><wfw:comment>http://www.aygfsteel.com/iNeo/comments/21808.html</wfw:comment><comments>http://www.aygfsteel.com/iNeo/archive/2005/11/29/21808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/iNeo/comments/commentRss/21808.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/iNeo/services/trackbacks/21808.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=6 width="98%" background=http://www.pconline.com.cn/images/point.gif border=0> <TBODY> <TR> <TD align=middle colSpan=3> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle><B class="art_title f18">你能q关?J2EE面试题集?附答?</B></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD class=555>出处QCSDN[ 2005-11-24 10:00:55 ] </TD> <TD class=555 align=middle>作者:metaphy </TD> <TD class=555 align=right>责Q~辑Qxietaoming</TD></TR></TBODY></TABLE> <DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" align=center> <SCRIPT src="http://adv.pconline.com.cn/adpuba/show?id=pc.rjzx.sywz.btxf.&media=js&pid=cs.pconline.rjzx.biaoti."></SCRIPT> <A target=_blank><IMG height=60 src="http://image.pconline.com.cn/ad/200508/chiju_468x60.gif" width=468 border=0></A></DIV> <TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0> <TBODY> <TR> <TD class=article width="100%" height=62> <P>/**<BR> * By metaphy 2005-11-12<BR> * Version: 0.01<BR> * ?题目{案来源于metaphyq去的知识或|络,metaphy不能保证其正或完整?仅供参?BR>**/</P> <P><IFRAME id=ad_top name=ad_top align=left marginWidth=0 marginHeight=0 src="http://adv.pconline.com.cn/adpuba/show?id=pc.rjzx.sywz.hzh.&media=html&pid=cs.pconline.rjzx.hzh." frameBorder=0 width=320 scrolling=no height=280></IFRAME><STRONG>一、基问答</STRONG></P> <P>  <STRONG>1.下面哪些cd以被l承?</STRONG></P> <P>   java.lang.Thread (T)<BR>   java.lang.Number (T)<BR>   java.lang.Double (F)<BR>   java.lang.Math  (F)<BR>   java.lang.Void  (F)<BR>   java.lang.Class  (F)<BR>   java.lang.ClassLoader (T)</P> <P>  <STRONG>2.抽象cd接口的区?/STRONG></P> <P>  (1)接口可以被多重implements,抽象cd能被单一extends<BR>  (2)接口只有定义,抽象cd以有定义和实?BR>  (3)接口的字D定义默认ؓ:public static final, 抽象cdD默认是"friendly"(本包可见)</P> <P>  <STRONG>3.Hashtable的原?q说出HashMap与Hashtable的区?/STRONG></P> <P>  HashTable的原?通过节点的关键码定节点的存储位|?即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),此D释ؓ该节点的存储地址.<BR>HashMap 与Hashtable很相?但HashMap 是非同步(unsynchronizded)和可以以null为关键码?</P> <P>  <STRONG>4.forward和redirect的区?/STRONG></P> <P>  forward: an internal transfer in servlet<BR>  redirect: 重定??ơrequest,W?ơrequest丢q一ơ的attributs/parameters{?/P> <P>  <STRONG>5.什么是Web容器?</STRONG></P> <P>  实现J2EE规范中web协议的应?该协议定义了webE序的运行时环境,包括:q发?安全?生命周期理{等.</P> <P>  6.解释下面关于J2EE的名?/P> <P>  (1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是Q提供一个目录系l,让其它各地的应用E序在其上面留下自己的烦引,从而满_速查扑֒定位分布式应用程序的功能.<BR>  (2)JMSQJava Message Service,JAVA消息服务.主要实现各个应用E序之间的通讯.包括点对点和q播.<BR>  (3)JTAQJava Transaction API,JAVA事务服务.提供各种分布式事务服?应用E序只需调用其提供的接口卛_.<BR>  (4)JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部v和自定义实现自己的个性安全控制策?<BR>  (5)RMI:Remote Method Interface,q程Ҏ调用</P> <P>  <STRONG>7.EJB是基于哪些技术实现的Qƈ?出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区?</STRONG></P> <P>  EJB包括Session Bean、Entity Bean、Message Driven BeanQ基于JNDI、RMI、JAT{技术实?</P> <P>  SessionBean在J2EE应用E序中被用来完成一些服务器端的业务操作Q例如访问数据库、调用其他EJBlg.EntityBean被用来代表应用系l中用到的数?对于客户机,SessionBean是一U非持久性对象,它实现某些在服务器上q行的业务逻辑;EntityBean是一U持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用E序实现的实?</P> <P>  Session Bean q可以再l分?Stateful Session Bean ?Stateless Session Bean .q两U的 Session Bean都可以将pȝ逻辑攑֜ method之中执行Q不同的?Stateful Session Bean 可以记录呼叫者的状态,因此通常来说Q一个用者会有一个相对应?Stateful Session Bean 的实?Stateless Session Bean 虽然也是逻辑lgQ但是他却不负责记录使用者状态,也就是说当用者呼?Stateless Session Bean 的时候,EJB Container q不会找ȝ定的 Stateless Session Bean 的实体来执行q个 method.换言之,很可能数个用者在执行某个 Stateless Session Bean ?methods Ӟ会是同一?Bean ?Instance 在执?从内存方面来看, Stateful Session Bean ?Stateless Session Bean 比较Q?Stateful Session Bean 会消?J2EE Server 较多的内存,然?Stateful Session Bean 的优势却在于他可以维持用者的状?</P> <P>  <STRONG>8.XML的解析方?/STRONG></P> <P>  Sax,DOM,JDOM</P> <P>  <STRONG>9.什么是Web Service?</STRONG></P> <P>  Web Service是Z使原来各孤立的站点之间的信息能够怺通信、共享而提出的一U接口?BR>Web Service所使用的是Internet上统一、开攄标准Q如HTTP、XML、SOAPQ简单对象访问协议)、WSDL{,所以Web Service可以在Q何支持这些标准的环境QWindows,LinuxQ中使用?/P> <P>  注:SOAP协议QSimple Object Access Protocal,单对象访问协议),它是一个用于分散和分布式环境下|络信息交换的基于XML的通讯协议。在此协议下QY件组件或应用E序能够通过标准的HTTP协议q行通讯。它的设计目标就是简单性和扩展性,q有助于大量异构E序和^C间的互操作性,从而存在的应用程序能够被q泛的用戯问?/P> <P>  优势Q?/P> <P>  (1).跨^台?BR>  (2).SOAP协议是基于XML和HTTPq些业界的标准的Q得C所有的重要公司的支持?BR>  (3).׃使用了SOAPQ数据是以ASCII文本的方式而非二进制传输,调试很方便;q且׃q样Q它的数据容易通过防火墙,不需要防火墙ZE序而单独开一个“漏z”?BR>  (4).此外QWebService实现的技术难度要比CORBA和DCOM得多?BR>  (5).要实现B2B集成QEDI比较完善与比较复杂;而用WebService则可以低成本的实玎ͼ公怹可以用上?BR>  (6).在C/S的程序中QWebService可以实现|页无整体刷新的与服务器打交道ƈ取数?/P> <P>  ~点Q?/P> <P>  (1).WebService使用了XMLҎ据封装,会造成大量的数据要在网l中传输?BR>  (2).WebService规范没有规定M与实现相关的l节Q包括对象模型、编E语aQ这一点,它不如CORBA?/P> <P>  <STRONG>10.多线E有几种实现Ҏ,都是什?同步有几U实现方?都是什?</STRONG></P> <P>  {:多线E有两种实现ҎQ分别是l承ThreadcM实现Runnable接口<BR>  同步的实现方面有两种Q分别是synchronized,wait与notify</P> <P>  <STRONG>11.JSP中动态INCLUDE与静态INCLUDE的区别?</STRONG> </P> <P>  动态INCLUDE用jsp:include动作实现</P> <P><jsp:include page="included.jsp" flush="true"/></P> <P>  它L会检查所含文件中的变化,适合用于包含动态页面,q且可以带参?/P> <P>  静态INCLUDE用include伪码实现,定不会检查所含文件的变化Q适用于包含静态页?/P> <P>  <%@ include file="included.htm" %><BR><BR> <TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0> <TBODY> <TR> <TD class=article width="100%" height=62> <P></P> <P><STRONG>二、Java~程与程序运行结?/STRONG></P> <P>  <STRONG>1.Java~程,打印昨天的当前时?/STRONG></P> <P class=code>public class YesterdayCurrent{<BR>  public void main(String[] args){<BR>    Calendar cal = Calendar.getInstance();<BR>    cal.add(Calendar.DATE, -1);<BR>    System.out.println(cal.getTime());<BR>  }<BR>}</P> <P>  <STRONG>2.文gd,实现一个计数器</STRONG></P> <P class=code>  public int getNum(){<BR>        int i = -1;<BR>        try{<BR>            String stri="";<BR>            BufferedReader in = new BufferedReader(new FileReader(f));<BR>            while((stri=in.readLine())!=null){<BR>                i = Integer.parseInt(stri.trim());<BR>            }<BR>            in.close();<BR>        }catch(Exception e){<BR>            e.printStackTrace();<BR>        }<BR>        return i;<BR>    }<BR>    public void setNum(){<BR>        int i = getNum();<BR>        i++;        <BR>        try{<BR>            PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(f,false)));  <BR>            out.write(String.valueOf(i));            //可能是编码的原因Q如果直接写入int的话Q将出现java~码和windows~码的؜乱,因此此处写入的是String<BR>            out.close() ;<BR>        }catch(Exception e){<BR>            e.printStackTrace();<BR>        }<BR>    }</P> <P>  <STRONG>3. 指出下面E序的运行结?</STRONG></P> <P class=code>class A{<BR>    static{<BR>        System.out.print("1");<BR>    }<BR>    public A(){<BR>        System.out.print("2");<BR>    }<BR>}<BR>class B extends A{<BR>    static{<BR>        System.out.print("a");<BR>    }<BR>    public B(){<BR>        System.out.print("b");<BR>    }   <BR>}<BR>public class Hello{<BR>    public static void main(String[] ars){<BR>        A ab = new B(); //执行到此?l果: 1a2b<BR> ab = new B(); //执行到此?l果: 1a2bab<BR>    }<BR>}</P> <P>  ?cȝstatic 代码D?可以看作是类首次加蝲(被虚拟机加蝲)执行的代?而对于类的加?首先要执行其基类的构?再执行其本n的构?/P> <P>  <STRONG>4.写一个Singleton模式的例?/STRONG></P> <P class=code>public class Singleton{<BR> private static Singleton single = new Singleton();<BR> private Singleton(){}<BR> public Singleton getInstance(){<BR>  return single;<BR> }<BR>}</P> <P><STRONG>三、数据库</STRONG></P> <P>  <STRONG>1.删除表的重复记录</STRONG></P> <P>  如果记录完全相同才算重复记录,那么:  (sql server2000下测试通过)</P> <P class=code>select distinct * into #tmpp from tid<BR>delete from tid     <BR>insert into tid select * from #tmpp<BR>drop table #tmpp</P> <P>  如果有id主键(数字,自增1的那U?,那么:(sql server2000下测试通过)</P> <P class=code>delete from tableA where id not in<BR>(select id = min(id) from tableA group by name)</P> <P>  <STRONG>2.delete from tablea & truncate table tablea的区?/STRONG></P> <P>  truncate 语句执行速度?占资源少,q且只记录页删除的日志;<BR>  delete Ҏ条记录的删除均需要记录日?/P></TD></TR></TBODY></TABLE></P></TD></TR></TBODY></TABLE><img src ="http://www.aygfsteel.com/iNeo/aggbug/21808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/iNeo/" target="_blank">只牵q只?/a> 2005-11-29 12:33 <a href="http://www.aygfsteel.com/iNeo/archive/2005/11/29/21808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˳</a>| <a href="http://" target="_blank">Т</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ൺ</a>| <a href="http://" target="_blank">ϰ</a>| <a href="http://" target="_blank">ָ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˴</a>| <a href="http://" target="_blank">ʮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ڽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>