乱码是j2ee中一个比较常见的问题。遇到1,2个情况下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")来解决。遇到多的情况下,就最好用过滤器了。
1个过滤器只需要注意2个地方,类和在web.xml上面的发布。
1。在web.xml上面的发布如下:
<filter>
<filter-name>SetCharsetEncodingFilter</filter-name> //这个是类名
<filter-class>org.SetCharacter</filter-class> //这个是类的位置
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharsetEncodingFilter</filter-name>
<url-pattern> /* </url-pattern> //这个代表所有的文件遇到过滤器都要被拦截
</filter-mapping> 2。过滤的这个类如下:
package org;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig arg0) throws ServletException {
this.encoding = arg0.getInitParameter("encoding");
String value = arg0.getInitParameter("imnore");
if(value==null){
this.ignore = true;
}else if (value.equalsIgnoreCase("true")){
this.ignore = true;
}else if(value.equalsIgnoreCase("yes")){
this.ignore = true;
}
}
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
if(ignore||(arg0.getCharacterEncoding() == null)){
String encoding =selectEncoding(arg0);
if(encoding!=null)
arg0.setCharacterEncoding(encoding);
}
arg2.doFilter(arg0,arg1);
}
private String selectEncoding(ServletRequest arg0) {
return (this.encoding);
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
}
posted @
2007-01-04 23:00 xrzp 阅读(1358) |
评论 (2) |
编辑 收藏
JAVA把存储器分为5种:
1.寄存器Register
2.栈Stack:栈在RAM中,CPU可通过栈指针直接访问数据,栈指针向上则建立新的存储区,向下则释放存储区。栈中的数据必须有确切的大小和生命期(什么时候建立数据,什么时候撤消数据),不然指针如何知道该移动多少呢?通常对象的引用放在栈中,但是对象本身不在这里。由于栈在RAM中,因此速度比寄存器慢。基本数据类型也在栈中,因为其大小和生命期是确定的。
3.堆Heap:堆在RAM中,JAVA对象就放在这里。堆的好处是其中的数据的大小和生命期都可以不确定。每当用new关键字创建对象时,编译程序就会在堆中分配响应的存储区给对象。
4.静态存储区Static:静态存储区也在RAM中,看到Static,就可以猜测,那些加在static关键字的数据和方法都放在这里,确实这样。不过对象即便是静态的也不放在这儿。
5.常量存储区Constant:常量存储区在RAM中,与静态存储区类似,程序中的常量(由final关键字修饰)都放在这里。
posted @
2007-01-03 23:38 xrzp 阅读(786) |
评论 (1) |
编辑 收藏
本来想完全自己写这个主题的,但是发现自己对很多东西都没不知道,所以就看了一下别人总结的,学了一下“拿来主义”。上次看一个招聘广告上要求会RMI,我却连它是什么东西都不知道,太丢人了。先把这些名词拿来。
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):
JDBC(Java Database Connectivity):
JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。
JNDI(Java Name and Directory Interface):
JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
EJB(Enterprise JavaBean):
J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
RMI(Remote Method Invoke):
正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
Java IDL/CORBA:
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。 他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
JSP(Java Server Pages):
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
Java Servlet:
Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
XML(Extensible Markup Language):
XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
JMS(Java Message Service):
MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。
JTA(Java Transaction Architecture):
JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
JTS(Java Transaction Service):
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
JavaMail:
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
JAF(JavaBeans Activation Framework):
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
posted @
2006-12-27 21:37 xrzp 阅读(225) |
评论 (0) |
编辑 收藏
1.一个表空间只能属于一个数据库
2.每个数据库最少有一个控制文件(建议
3
个,分别放在不同的磁盘上)
3.每个数据库最少有一个表空间(
SYSTEM
表空间)
4.建立
SYSTEM
表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率
5.每个数据库最少有两个联机日志文件
6.一个数据文件只能属于一个表空间
7.一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中
8.建立新的表空间需要建立新的数据文件
9.数据文件被
ORACLE
格式化为
ORACLE
块,
ORACLE
块的大小是在第一次创建数据库时设定的,并且以后不能改变
10.单独一个事务不能跨越多个回滚段
11.索引表不含
ROWID
值
12.拥有不同大小的回滚段没有任何益处
13.
ORACLE
在初始安装时建立一个缺省数据库,实例名为
ORCL
14.一个块的最大长度为
16KB(
有
2K
、
4K
、
8K
、
16K)
每个数据库最大文件数(按块大小)
2K
块
20000
个文件
4K
块
40000
个文件
8K
块或以上 65536个文件
15.
oracle server
可以同时启动多个数据库
16.一套操作系统上只能安装一个版本的
ORACLE
数据库系统
17.一套
ORACLE
数据库系统中可以有多个
ORACLE
数据库
18. 每个
ORACLE
数据库拥有一个数据库实例(
INSTANCE
),
所以,一套操作系统上同时可以有多个
oracle
数据库实例启动
19.主键的值不能重复
posted @
2006-10-30 23:16 xrzp 阅读(253) |
评论 (0) |
编辑 收藏
病毒猛于虎啊!!2台机器都中毒了,还不浅。心得:新装完系统后,先把所有驱动装好,再打SP4的补丁,然后用金山的那个漏洞扫描下漏洞,暂时先打几个补丁。再用专用的viking专杀工具来把整个硬盘清除一次,免得杀毒软件把.exe的文件一起当病毒给干掉了。再接下来,就装瑞星或是江民,貌似江民比较好(功能要强大一点,界面要简洁一点)。装完杀毒软件后就是更新杀毒软件了,然后再用杀毒软件自带的系统漏洞补丁扫描来扫一次,把剩下的能装的补丁装了,弄的差不多后,就用ghost搞个镜像。
posted @
2006-10-29 03:29 xrzp 阅读(279) |
评论 (2) |
编辑 收藏
扔几颗种子,撒爬尿,哈哈。
posted @
2006-10-20 22:12 xrzp 阅读(145) |
评论 (0) |
编辑 收藏