2008年1月4日
ear包:企业级应用,通常是EJB打成ear包。
war包:是做好一个web应用后,通常是网站,打成包部署到容器中。
jar包:通常是开发时要引用通用类,打成包便于存放管理。
Web服务器(Web Server)
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),
例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),
或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,
servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。
无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,
它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。
Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,
而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),
数据库连接(database connectivity)和消息(messaging)等功能。
虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)
和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。
集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。
应用程序服务器(The Application Server)
根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。
Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。
应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。
应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。
在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。
相反,这种信息就是程序逻辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,
所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。 (网上找的)
EJB错误
出错地方
public List selectResult(int id) {
String sql = "{call proc2(?)}";
Query query = em.createNativeQuery(sql);//这里的问题
query.setParameter(1, id);
List list = query.getResultList();
return list;
}
java.lang.ClassCastException: [Ljava.lang.Object;
解决方法
public List selectResult(int id) {
String sql = "{call proc2(?)}";
Query query = em.createNativeQuery(sql,实体名.class);//这里的问题
query.setParameter(1, id);
List list = query.getResultList();
return list;
}
org.jboss.deployment.DeploymentException: url file:/D:/Program Files/jboss-4.0.5.GA/server/all/deploy/fuza.ear/fuzaWeb.war could not be opened, does it exist?
解决办法:没有配置环境
右击我的电脑-属性-高级-环境变量
4.4.1 I/O流的层次
1.字节流:
从InputStream和OutputStream派生出来的一系列类。这类流以字节(byte)为基本处理单位。
◇ InputStream、OutputStream
◇ FileInputStream、FileOutputStream
◇ PipedInputStream、PipedOutputStream
◇ ByteArrayInputStream、ByteArrayOutputStream
◇ FilterInputStream、FilterOutputStream
◇ DataInputStream、DataOutputStream
◇ BufferedInputStream、BufferedOutputStream
2.字符流:
从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位。
◇ Reader、Writer
◇ InputStreamReader、OutputStreamWriter
◇ FileReader、FileWriter
◇ CharArrayReader、CharArrayWriter
◇ PipedReader、PipedWriter
◇ FilterReader、FilterWriter
◇ BufferedReader、BufferedWriter
◇ StringReader、StringWriter
3.对象流
◇ ObjectInputStream、ObjectOutputStream
4.其它
◇ 文件处理:
File、RandomAccessFile;
◇ 接口
DataInput、DataOutput、ObjectInput、ObjectOutput;
原来是忘了弄这个了哦 在Eclipse中配置JDBC
首先,从老师那里得到JDBC的安装程序,先把驱动程序安装好。
第一步:右键点击项目,选择Properties
第二步:选择Java Build Path
第三点:选择Libraries,点击“增加扩展的JARS”,
把JDBC安装目录下的三个.jar文件引入即可。
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at pkConn.ConnectionTest.<init>(ConnectionTest.java:16)
at pkConn.ConnectionTest.main(ConnectionTest.java:29)
这是什么异常啊!我要疯了啊!
今天主持班上的知识竞赛,其实是被逼的。为了锻炼我们,老师让我们每个人都要主持。
今天的主持好丢人啊,总是要说错话。不过有人曾经曰过,要喜欢丢脸。现在这个社会哟,O感觉都没法生存了哦,O来一个性格内向的人,话很少。这个社会完全不需要O这种,半天不开腔的人。别人和O说半天,O半天不来气。感觉就像一个傻子,O该怎么办呢???
有点想疯的感觉,O这个样子能找到工作吗?不行,我不能这样下去,这样就等于自我放弃了。我要拼,我要抓住现在这些个锻炼的机会。那些相信我、关心O的同学,我要对的起他们。
今天早上做了一上午的登陆窗口,都没有做好.下午好不容易做好了,顺便还做了几个窗体.感觉很有成就感,心里是一阵狂喜.
真是上上天将降大任与私人也,必先让他断电,让他所有的东西都没有保存,在把今天的东西重做一遍,等明天老师检查的时候在把他很M一吨.
郁闷啦!!!!
if(obj == btLogin){
if(tfName.getText() == null || tfPw.getText() == null){
JOptionPane.showMessageDialog(this,"用户名或密码不能为空!");
}
if(tfName.getText() == "wangxiaoju" && tfPw.getText() == "123"){
new clMain();
this.dispose();
}
else {
JOptionPane.showMessageDialog(this,"不正确的用户名或密码!");
}
}
这个为什么执行不起呢????
问题解决了!!