JSP中遇到的几个常见问题

本文总结了一系列Java Web开发中的实用技巧,包括表单请求处理、页面缓存控制、时间计算、Session管理等方面的内容,旨在帮助开发者提升工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、表单request汉字处理: request.setCharacterEncoding("GB2312")   2、在JSP网页中获取页面的名称: request.getRequestURI() ;//文件名 request.getRequestURL() ;//全部url   3、 页面不保留缓存: response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0);   4、日期时间(服务器端) String datestr ; java.text.DateFormat df = new java.text.SimpleDateFormat("MM月dd日 HH:mm E"); //这里格式化 datestr = df.format(new java.util.Date()) ; out.println(datestr);   或者 <% java.util.Date shijian= new java.util.Date();%><%=shijian.getYear()+1900%><%=shijian.getMonth()+1%><%=shijian.getDate()%><%=shijian.getHour()%><%=shijian.getMinute()%>  5、java中运用正则。jdk需是1.4以上 import="java.util.regex.*   6、点后退显示网页过期   在里面加以下代码 <META http-equiv=Pragma content=no-cache><META http-equiv=Cache-Control content=no-cache><META http-equiv=Expires content=0>   和 3 原理一样。   7、计算执行所花费的时间   代码开始取时间,结束后取时间,相减 long t1 = System.currentTimeMillis(); ///////////////// your code long t2 = System.currentTimeMillis() ; long time = t2-t1;   8、四舍五入,保留小数点后两位小数? import java.text.*; NumberFormat nf=NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); nf.setMinimumFractionDigits(2); nf.format(numb); 或者(+0.005 - 0.01)再取.后两位   9、form的默认方法是get.   post方式是向服务器传送大容量数据时使用的方法。(再打开一个socket.?)   10、 防止用户直接输入url进去页面:   一 是在要访问的页面中加入控制.这个一般用session。   二 是从web服务器控制,对某一目录的所有访问要通过验证.(有人说把jsp放到web-inf下)  11、数据库是datetime 型 ,插入当前时间到数据库: java.sql.Date sqlDate = new java.sql.Date(); PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)"); pstmt.setDate(1,sqlDate); pstmt.executeUpdate();   其实一般数据库都有自己的系统时间函数。 insert into foo(time) values(sysdate)   12、 session存取int类型的变量: session.setAttribute("int", i+""); //注意这里i+"" int i = Integer.parseInt(session.getAttribute("int"));   session的一些概念。   用户在浏览网页时,由于Http 协议是一种无状态的协议,往往在不同的页面之间存在数据交换的问题,这就需要在这些不同的页面之间共享数据。常见的实现方法是把要共享的数据保存到Session 中。比如在用户登录的页面中把一些用户的信息保存到Session 之中,然后在其他的页面中读取用户的信息。这些共享的数据可以是字符串或者与Java 的原始数据类型相关的对象,也可以是一个Java 对象。   Session 只能保存对象,不能保存原始的数据类型,比如: session.setAttribute(“count”,10)   是非法的语句,如果要把值为10 的整数保存到Session 中,需要使用以下的方法: session.setAttribute(“count”,new Integer(10));   然后在另一个页面中使用: (Integer)session.getAttribute(“count”)   来把这个整数读取出来。 was中设置可以把session放在系统的数据库中,但这样影响效率。session大小最好不要太大  13、把字符转化成ASCII码 int a='A'; out.println(a);   14、String s = new String("xyz");创建了两个String Object对象,一个是“xyx”,一个是指向“xyx”的引用对象s。   还有典型的equals() 与 == 这个参考在堆栈原理。   15、swtich不能作用在long上和String上: switch(expr1)中,expr1是一个整数表达式。传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。   16、Hashtable和HashMap    Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现HashMap允许将null作为一个entry的key或者value,而Hashtable不允许Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值