^_^ ^_^ 今天虽然在一个问题上纠缠了足足三个小时, 但是最终还是被我解决了。 现将其中遇到的一些问题给记录一下:
1、 java.sql.SQLException: 结果集已耗尽
————解决方案:
请把 conn.close();放到finally中,
如下:
finally{
conn.close();
conn = null;
stmt.close();
stmt = null;
}
这样会大大减少你出此类的问题概率。
接着如果还有问题再进行研究。 注意 : 良好的做法是不仅要关闭资源,而且最后要置响应的对象为null,这样就不用等着GC去回收了... ...
2、 ArrayList和Vector有何区别?
Vector是同步的,而ArrayList没有!这是他们之间最大的区别!
因而,Vector的效率要比ArrayList差,所以不是必要的时候,推荐使用ArrayList.
3、 resultSet的next方法是从
ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行
4、 boolean absolut(int row)方法, 将光标移动到此 ResultSet 对象的给定行编号。
但是row是从1开始计数的
5、 java.sql.SQLException: 对只转发结果集的无效操作: absolute
————是因为没有将结果集设置可滚动的,
stat = conn.createStatement();
改为 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 就可以了
分析: 异常出现于移动结果集的指针时,原因是在生成statement对象的时候提供的参数不同
无参数的那个方法使用的是默认参数,statement执行后得到的结果集类型为 ResultSet.TYPE_FORWARD_ONLY.这种类型的结果集只能通过rs.next();方法逐条读取,使用其他方法就会报异常. 如果想执行一些复杂的移动结果集指针的操作就要使用其他参数了
顺便简单介绍一下各个参数:
a. ResultSet.TYPE_FORWARD_ONLY (略)
b. ResultSet.TYPE_SCROLL_INSENSITIVE 双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
c. ResultSet.TYPE_SCROLL_SENSITIVE 双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。
d. ResultSet.CONCUR_READ_ONLY 只读取ResultSet
e. ResultSet.CONCUR_UPDATABLE 用ResultSet更新数据库
6、 连接池:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection
解答:超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。每次connect.close()后面我都跟一个GC.colloct().
如adminconn.Close();GC.Collect();或者dgvideo.DataBind();GC.Collect();速度感觉很慢了。可是
玩猛点还是有这种情况发生。....请哪位高手指点个终极解决方案.谢谢了。
没终极解决方案一说
>>>每次connect.close()后面我都跟一个GC.colloct().
a。别这样调用GC.Collect(),这样做只会造成性能问题
b。确认你启用了连接池(Pooling='true',默认情形)
c。使用Dispose模式或者
try
{
//....
}
finally
{
connect.Close();
}
确认你关闭了所有打开的连接
d。通过日志等手段研究一下你的服务器的负载情形,然后根据情形适当增加Max Pool Size,以及Connect Timeout 等参数
主要的优化,还是观察性能监测器的数据,根据情况调整最大池的数目.
并且保证你的Conn已经关闭,方法就是实现IDispose接口,或者finally.
不要自己调用GC.colloct()方法..这样只会增加系统的负担..
及时关闭连接才是最好的办法。
7、 搜索引擎优化
a. 我们在服务器端,创建了robots.txt;
b. 结合自己的开发经验,避免了网站优化与SEO的误区
c. 我们可以让程序自动生成sitemap.xml,通知各个搜索引擎,这个网站包含了什么;
d. 我们会按标签给明白H1/H2,尽量让百度、谷歌搜索出来的结果就是您的网站,而不是让您再额外多花钱去做竞价排名;
这里需要说一下,大多数客户并不清楚搜索引擎优化的重要性,他们仅把网站做出来放到网上,然后名片上印一个网址就算完成了网站推广工作。其实这样每天的访问量是很低的,网站起不到一个辅助性作用,只是一个摆设。而一部分认识到网络可以创造财富的客户,他们会花一部分预算去做关键字的“竞价排名”,买一些关键字,例如“整容”,让用户在搜索“整容”的时候,自己排在别人的前面。这需要大量的、持续的资金来支撑。您可能并不在乎这些钱,可是这些钱恰恰是可以省去的。举一个最简单的例子,您可以搜索北京大学MTI教育中心,搜索出来的结果是什么,同样的内容,为什么我们做出来的东西排在真正的北大MTI前边?这就是SEO的底层优化。而这些,是一次投入就可以做到的。
8、 前段开发
前端开发方面
a. 最大程度的压缩了网页大小,提高访问者的用户体验
b. 兼容主流浏览器的同时(这一点,部分优秀的前端开发已经做到了)
兼容了不同的分辨率大小(显示器的规格越来越多,这一点是很有必要掌握的)
c. 我们采用了xhtml+css的布局,而不是div+css或者table套table(这一点也有越来越多的人在掌握)
重要的是表达
同样一句话,同样一个意思,同样一件事,换一个说法,留给人的印象其实大不相同。
作为一名网站建设者,其实不仅仅需要掌握网站建设的知识,更需要掌握的是表达的技巧。客户把网站交给你,给了你充分的信任与经济支持,你就有必要结合自己所学到的营销知识,将更有力的口号放在更显眼的位置。纯粹的设计仅是photoshop的皮毛罢了。我们不是第一,所以我们更需要努力!
9、 关于“注销”的实现:
当用户登陆成功时,我们可以设置一个session,保存用户的姓名,以后每转换页面的条件就是先判断姓名为不为空~~注消后只要删除session中的值就行了~~
有一个remove方法,你在页面中用session.remove("index"); 或者使用session的invalidate()方法也行。
10、 疑问: 我确认我已经实现了从客户端上传图片到服务器, 同时我将上传之后的图片的绝对路径保存进了数据库。 然后我在服务器端通过<img src="图片绝对路径">可以将图片读取出来; 但是我在客户端也采取此种方式却读不出图片来, 我觉得应该是src的问题... 因为客户端并不存在src中给定的路径, 请问这该如何解决呢???
11、 在jsp页面中传递数据时, 出现了乱码然后通过new String(str.getBytes("iso-8859-1"),"utf-8")来处理... ... 处理之后却总是出现传递过来的字符串的最后一个字是乱码的??? 怎么会这样