一,重定向页面
1,response.sendredirect("url");
2,response.setstatus(httpservletresponse.sc_moved_permanently);
response.setheader("location",newlocation);
二,html encoder和url encoder
1,html encoder自定义,原则:''不输出,'&'-"&",'<'-"<",'>'-"gt;",'"'-"""
2,urlencoder 在java.net包中有定义
原型:public static string encode(string s)
例如:urlencoder.encode("http://wwww.aaa.com/sss.jsp?name=小鬼")
三,在jsp中读写文件
1,用fileoutputstream初始化printwriter,然后用print或者println方法写文件
printwriter pw=new printwriter(new fileoutputstream("file1.txt"));
pw.println("hello world!");
pw.close();//若有错误thow ioexception
用filewriter初始化printwriter,然后用print或者println方法写文件
file f=new file("file1.txt");
printwriter pw=new printwriter(new filewriter(f));
pw.print("hello world!\n");
pw.close();
2,用inputstreamreader或者filereader初始化bufferedreader,然后用readline()方法读取文件
bufferedreader br=new bufferedreader(new filereader("file1.txt"));
string rt=br.readline();//结尾为null
br.close();
3,用filewriter初始化printwriter,然后用pint或者println方法添加文件
printwriter pw=new printwriter(new filewriter("file1.txt"),true);
4,import java.io.*;
file f=new file(request.getrealpath(""),"file1.txt");
boolean f.exists();
f.delete();f.createnewfile();
file d=new file(request.getrealpath(""));
boolean d.exists();
d.delete();d.mkdir();
request.getrealpath("url");//虚拟目录映射为实际目录
request.getrealpath("./");//网页所在的目录
request.getrealpath("../");//网页所在目录的上一层目录
file f=new file("path","file1.txt");
f.getname();
f.isfile();
f.isdirectory();
f.canread();
f.canwrite();
f.ishidden();
f.lastmodified;
f.createnewfile();
f.length();
file d=new file("path");
file list[]=d.listfiles();//list是一个file数组
for(int i=0;i<list.length;i++)out.println(list[i].getname());
filereader fr=new filereader("path"+"\\file1.txt");
if(fr.read()==-1)//空文件
fr.close();
fr.read(int i)//读取i个字符,-1如果不再有数据
//用bufferedreader可以一次读取一行数据
fr.skip(int i);//略过i个字符
在引用parseint等函数的时候,出错是numberformatexception等
random获得随机数,
random rd=new random((new date()).gettime());
int p=math.abs(rd.nextint())%s;//s为0到的范围
四,url重组、表单隐藏域cookie
1,这些是用来弥补http协议无状态特征的技术(sessions技术)的一部分
2,url重组是用get方法向服务器发送的信息“?param1=value1¶m2=value2&...¶mn=valuen”
如果服务器已经在超链接上面作了session标记,那么客户端通过这个走超链接发送请来时就会包含此标记
3,form中的<input type=hidden name="key1" value="value1" />也可以像url重组那样使用。
4,cookie对象
cookie c=new cookie("key", "value");
response.addcookie(c);
cookie[] c=request.getcookies();
c.setmaxage(int k);//k以秒为单位
一般浏览器能放20个cookie
五,session对象
1,session对象不仅仅能放string数据,还能放复杂的对象。
2,session.putvalue("key1",object1);
object o=session.getvalue("key1");
六,处理jsp中的中文问题
1,ascii码
8bit存储,0~31和127是控制字符,32~126是可见字符。
2,gb2312
两个8bit表示。前一个127~255,以区分ascii码。
3,unicode
可以将世界上几十种文字编码统一在同一种编码机制下。以16bit为单位存储。0x0000~0xffff
4,iso-8859-1 或称为latin-1,8859-1。在unicode所占的值域为0~255,低位为ascii扩展到0~255,然后在高位补上0x00,组成16bit(此处不太懂)。
5,字节和unicode java内核是unicode,class文件也是。但是流却是采用的byte方式。char为unicode方式,byte是字节方式。转换函数:sun.io里面:
public static bytetocharconverter getdefault();//获取系统使用的编码方式。
public static bytetocharconverter getconverter(string encoding);
bytetocharconverter c=new bytetocharconverter(["encoding"]);
byte[] s=c.convertall(char[] d);
也可以 char[] d=c.converterall(byte[] s);
6,一些函数:
integer.tohexstring(int i);
string s;s.getbytes();
string(byte[]);string(byte[],encoding);//constructors
file://关于unicode编码打算单独写一篇
七,获取jvm属性值
properties props=system.getproperties();
enumeration enum=props.propertynames(); //key枚举
key=(string)enum.nextelement();
string s=(string)props.getproperty(key);
八,jsp错误处理
1,所有可被throw和catch的exception对象都继承自throwable。exception应该被catch才对;error对象也是继承自throwable,只是不应该catch,而的结束程序。
2,catch序列针对的exception应该从低级到高级才对。
3,转译错误和客户端端请求错误。jsp源程序错误、import路径不正确等会在生成servlet class文档时产生转译错误(500)。在执行servlet class时客户端请求错误会被catch。
4,错误产生时,可以jsp:forward来控制,但更好是用errorpage来处理。也可以throw new exception("errmsg")。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器