/**
* TestJDK.java
*
* javac TestJDK.java
* java TestJDK
*
* JDK环境变量的配置
*
* 1)到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:
* j2sdk-1_4_2_04-windows-i586-p.exe
* 下载之后安装好J2SDK;安装完之后,设置环境变量:我的电脑->属性->高级->环境变量;
* 假设J2SDK安装在目录 "D:\JavaHome\jdk1.6.0_12" 下。
* 2)选择 系统变量(S):
* a、设置JAVA_HOME环境变量:
* 单击 新建,在变量名中输入:JAVA_HOME
* 在变量值中输入:D:\JavaHome\jdk1.6.0_12
* b、设置CLASSPATH环境变量:
* 单击 新建,在变量名中输入:CLASSPATH
* 在变量值中输入(中间的点号“.”和分号“;”必不可少。):
&nb ......
使用调试模式即可。
进TOMCAT的manager控制台,可以对指定的虚拟目录进行控制(加载,重载,卸载),比重启快的多,在TOMCAT的默认首页上有链接。
============================================================================================
我们在开发的过程经常需要调试,也常常需要修改使用的类和servlet,如果是使用war方式tomcat可以自动重新发布,但是通常情况下我们使用tomcat开发的时候不会进行打包发布,那么如何让tomcat自动加载你修改过以后拷贝到webapps的某个应用中的类呢?其实很简单,对于某个应用,我们一般会在tomcat的配置文件server.xml为它建一个context,为应用配置数据源等,我们修改这个应用的context就可以达到让tomcat自动加载的目的:
例如:
<Context path="/test" docBase="test"
debug="0" privileged="true" reloadable="true" >
</Context>
最重要的就是 reloadable="true"了。 ......
import java.util.Arrays;
/**
* 求一个数组的全排列算法
* @author Administrator
*/
public class Pai {
public void pai(char[] array,int start,int end){
System.out.println(" -- 组合 "+start+" 到 "+end+" --");
if(start==end){
System.out.println(array);
}else{
for(int i=start; i<end; i++){
swap(array,start,i);
pai(array,start+1,end);
swap(array,start,i);
}
}
}
public void swap(char[] array,int i,int k){
//System.out.println(Arrays.toString(array) +" "+ i +" <--> "+k);
System.out.println("交换 "+ i +" 到 "+k);
char temp = array[i];
array[i] = array[k];
array[k] = temp;
}
public static void main(String[] args) {
String str = " ......
一、理解多线程
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。
线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此我们也不用关心它,只需要设想各个线程是同时执行即可。
多线程和传统的单线程在程序设计上最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题,将在以后探讨。
二、在Java中实现多线程
我们不妨设想,为了创建一个新的线程,我们需要做些什么?很显然,我们必须指明这个线程所要执行的代码,而这就是在Java中实现多线程我们所需要做的一切!
真是神奇!Java是如何做到这一点的?通过类!作为一个完全面向对象的语 ......
笔试的时候想不起来怎么写了。留个代码作纪念
package common;
import java.io.*;
import java.util.ArrayList;
public class IOTest {
public static void main (String args[]) {
ReadDate();
WriteDate();
}
/**
* 读取数据
*/
public static void ReadDate() {
String url = "e:/2.txt";
try {
FileReader read = new FileReader(new File(url));
StringBuffer sb = new StringBuffer();
char ch[] = new char[1024];
int d = read.read(ch);
while(d!=-1){
String str = new String(ch,0,d);
sb.append(str);
d = read.read(ch);
}
System.out.print(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 写入数据
*/
public static void WriteDate() {
try{
File file = new File("D:/abc.txt");
if ......
关键字: filter
过滤器Filter也具有生命周期:init()->doFilter()->destroy(),由部署文件中的filter元素驱动。在servlet2.4中,过滤器同样可以用于请求分派器,但须在web.xml中声明,<dispatcher>INCLUDE或FORWARD或REQUEST或ERROR</dispatcher>该元素位于filter-mapping中。
一、批量设置请求编码
Java代码
public class EncodingFilter implements Filter {
private String encoding = null;
public void destroy() {
encoding = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
......