JSP实用技巧大全

一,重定向页面

1,response.sendRedirect("url");
2,response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location",newLocation);

  二,HTML Encoder和URL Encoder

1,HTML Encoder自定义,原则:''不输出,'&'-"&amp;",'<'-"&lt;",'>'-"gt;",'"'-"&quot;"
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如果不再有数据
file://用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&param2=value2&...&paramn=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(); file://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")。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录下的文件移到另一个指定的目录? 6. 制作表格线? 7. jsp如判别一个字符在A到Z之间? 8. 得到一浮点数小数点后4位,如何写以函数截取为两位 9. 整型转字符? 10. 显示数据库的记录,点击哪个标题栏,就按照哪个标题排序 11. 制作两个按钮 12. 用什么sql语句将数据库中的一条记录,复制为两条? 13. 有兩個按鈕A,B,其中A按下去,A就不可以再按,另外B按下去,A可以再按..請問如何用javascript控制.? 14. jsp中的数据库的连接方式 15. 在jsp中,怎么实现按回车就可提交表单? 16. 在JSP中如何传递数组? 17. 按地址取图片? 18. JSP中如何上传图片到数据库字段? 19. 页面自动刷新? 20. 表单自动提交? 21. 从JSP传数据的到JAVABEAN里? 22. weblogic 数据池连接? 数据源 JNDI名字 mysource 23. 三级下拉列表框联动菜单? 24. 在JSP中如何调用浏览器中的"另存为"功能? 25. 网页全屏显示 26. 求两个日期相隔了多少天:输入时间格式为(yyyy-mm-dd) 27. 上传文件对话框 28. 分页测试 29. 下载文件 30. 简单汉字判断 31. 将JSP的变量或者bean传递给JAVASCRIPT使用? 32. 把一种格式(如yyyy-mm-dd)的日期变量转换成另外一种格式(如dd-mm-yyyy)的日期变量! 33. 实现在页面上添加一行输入对话框 34. 制作验证码图片? 35. 图片缩小放大功能 36. 点击输入框弹出日期选择? 37. 在图片上传前查看自己要上传的图片? 38. 在图片排列的页面上选中一个图片,然后把它删掉? 39. 显示某目录下的所有文件 40. 把复选框中选中的值直接显示在输入文本框中? 41. 选择路径下的文件直接显示文件内容? 42. 制作进度条? 43. 对较长字符省略显示? 44. 制作日历? 45. 点击文本弹出一个选择框,选中值后返回并显示 46. 关闭框架页面回到没框架的页面? 47. 选中多条记录一次性删除? 48. 自动获取页面文件名? 49. 在JSP中调用ActiveX控件? 50. 使用SmartUpload实现文件上传? 51. 使用iReport和Jasperreport开发报表? 52. 使用iText生成PDF? 53. 制作图片水印? 54. 在页面中屏蔽键盘功能键? 55. 禁止用户复制网页内容? 56. 实现不在地址拦中显示当前URL? 57. 获取用户的真实IP地址? 58. 获取用户浏览器信息? 59. 获取当前绝对路径? 60. 将HTML文件转换成XML文件? 61. 结合XML和XSL输出HTML页面? 62. 制作动态树型菜单制作? 63. 制作类似QQ的短消息提示? 64. 用jfreechat制作拄、饼、曲线图型? 65. 文本框怎么只容许输入数字? 66. 打开Word和Execl文件? 67. 生成Word 和 Excel文档? 68. JSP如何读取Word内容? 69. 浏览服务器目录/文件? 70. jsp直接弹出下载框下载文件? 71. 配置数据连接池和数据源(Tomcat)? 72. 点击图1变为图2? 73. JSP中显示图片的方法之一? 74. int转为Integer的方法? 75. 请求jsp页面禁止缓存方法? 76. select选中其中的值自动到一个文本框? 77. JSP连接数据库? 78. JSP两级下拉列表框联动(数据库)? 79. JSP字符编码问题及转换大全? 80. 使用过滤器设置请求编码? 81. JSP或Servlet调用DLL? 82. 在JSP中包含Applet(时钟)? 83. 在Applet中显示一个html页面? 84. 使session强制失效85. iFreme编辑框使用? 86. Applet与Servlet的通讯? 87. JSP表格直接导入EXCEL? 88. 访问类路径上的资源? 89. 操作文件目录? 90. 获取文件的属性? 91.如何开发并部署一个servlet 92.如何取得配置文件中的servlet的参数 93.使servlet成为线程安全的 94.访问标准的CGI变量 95. servlet之间及与jsp间的通讯 96.获取当前绝对路径 97.在servlet中操作cookie 98.使用servlet生成JPE

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值