100分求教两问题:1:有关tomcat连接池;2:在url中传递中文;(解决立即给分!!!)

ailove01 2005-03-10 11:27:58
1:有关tomcat连接池:
小弟用tomcat连接池访问数据库,发现很好用,但是有个疑问,就是什么时候关闭那个ds中的Connection,在开始事用
conn=ds.getConnection();
这个conn在数据库访问完后必须给关闭么???因为我测试过,你要是不关闭这个conn,只把
(ResultSet)rs.close();(Statement)stmt.close();
关闭时,当这个conn的数目达到你在server.xml中配置的最大连接数时这个就会出错了。如果把这个conn关闭了,那么这个连接池不就象直接连的么???没起作用丫!


2:在url中传递中文;
这个不是页面显示的问题。
俺想在a.jsp中用如:“<a href="你好.do">你好</a>”传递这个"你好.do"到servlet中,在servlet中,在servlet中处理这个字符串,但是在servlet中的不到“你好”这个字符串。截获的字符是一串如下:
%E%D%20.......
等等象这样的字符串,怎么才能把这个字符串以中文的形式显示出来???
这个问题也就是怎么在url地址栏中传递中文,在下一个页面中完整的现实出来,不用“?”来传递,也不用bean 和session。

web.xml的servlet-mapping:
<servlet>
<servlet-name>servlet</servlet>
<servlet-class>servlet.servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
...全文
305 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ailove01 2005-03-10
  • 打赏
  • 举报
回复
shidu(十度)
2、你可以在传递中文之前先编码,获取之后解码,这样就行了。好像可以用encode、decode(记不清了)。

说具体点,这,太笼统吧??

就是那个uri传递中文的问题,我想用代码实现。
li_mohao 2005-03-10
  • 打赏
  • 举报
回复
http://lmh.e-168.cn
ailove01 2005-03-10
  • 打赏
  • 举报
回复
bydzk()

你的方法我试过了,可是还是乱马

如下:
“电机”
发送过去后:%E7%94%B5%E6%9C%BA
ailove01 2005-03-10
  • 打赏
  • 举报
回复
1.这个连接应该在你不用的时候释放到连接池中.因为datasource每次只是从连接池中取得的一个没有使用的连接,当多次使用而没有释放连接的话,就会导致下次连接无资源可用,导致性能下降.最好在你不用的时候将连接返回.



你的这个返回是怎么返回free??还是象我那样conn.close()????
shuren 2005-03-10
  • 打赏
  • 举报
回复
2.同意 shidu(十度) 兄弟的~!

1.在servlet中写request.setCharacterEncoding("gb2312")这一句试下
shidu 2005-03-10
  • 打赏
  • 举报
回复
2、你可以在传递中文之前先编码,获取之后解码,这样就行了。好像可以用encode、decode(记不清了)。
shidu 2005-03-10
  • 打赏
  • 举报
回复
1、conn一定要关闭的。连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用。当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。
飞行的兔子 2005-03-10
  • 打赏
  • 举报
回复
1.这个连接应该在你不用的时候释放到连接池中.因为datasource每次只是从连接池中取得的一个没有使用的连接,当多次使用而没有释放连接的话,就会导致下次连接无资源可用,导致性能下降.最好在你不用的时候将连接返回.
第二个问题我仔细看看,没有试过,不敢乱说.
bydzk 2005-03-10
  • 打赏
  • 举报
回复
第二个问题:

设定URI 编码,可以解决当超链接中包含中文时,这些中文变成乱码的问题

1.登陆管理界面
http://localhost:8080/admin

密码和用户名在你安装的时候设定的,如果忘记(或没有)的话,去改tomcat\conf\tomcat-users.xml,添加admin和manager两个role,一个用户,该用户的role为admin和manager就可以了,按原有的xml复制修改就可以。

2.设置步骤
2.1 点击左边框架中Service菜单项左边的小圆,展开列表
2.2 点击左边框架中connector(8080)菜单项,右边框架出现设置页
2.3 将URI Encoding参数改为gb2312
2.4 点击右边框架中右上角save按钮
2.5 点击顶部框架Commit Changes按钮
ailove01 2005-03-10
  • 打赏
  • 举报
回复
没有人理么????自己up一下!!!
ailove01 2005-03-10
  • 打赏
  • 举报
回复
这个问题嘛,哈哈,我就自己琢磨的,公司做网站,就叫我一个人做,用JSP,SERVLET,JAVABEAN做,在JSP页面中全事用数据库中取得的数据,这些数据我用一个VECTOR从DBBEAN中取得,然后用循环把这个VECTOR 中的数据列出来,每行假设4个数据,在每行的头上是一个<A HREF=".....">....</A>连接,现在我把这个HREF后面的如上用那个HREF="<%=数据%>.<%=表名%>.ado"那个表名事英文的,可是那个数据是中文的,然后当点击这个连接时就会发送给servlet 一个字符串,servlet处理这个字符串,在重定向到下一个jsp页面中,在下一个页面中取得这个处理后的字符串,在做相应的操作。
我试了,这样怎么编码都不行,后来就把那个有中文的<%=数据%>换到后面HREF="<%=表名%>.ado?value=<%=数据%>"这样可以实现吧中文传过去。
我自己学的,看的东西比较杂,不够系统,学了半年jsp,什么东西还没做过,郁闷中........

有什么好的建议么????
shidu 2005-03-10
  • 打赏
  • 举报
回复
你的url为什么要是中文的??
ailove01 2005-03-10
  • 打赏
  • 举报
回复
<a href="?find=" + java.net.URLEncoder.encode("中文","gbk")">中文参数</a>


我想在那个?号前的URI中传递中文,不是在?号后传递。

比如:

<a href="<%=中文参数%>.do">中文参数</a>
然后再servlet中得到URI在吧这个 <%=中文参数%> 取得,可是这样得到的是乱马。

用<a href="xxx.do?value=中文参数">中文参数</a>这个能在servlet中得到中文
wcmj 2005-03-10
  • 打赏
  • 举报
回复
new String(filename.getBytes(),"ISO8859_1")
jspxnet 2005-03-10
  • 打赏
  • 举报
回复
<a href="?find=" + java.net.URLEncoder.encode("中文","gbk")">中文参数</a>
ailove01 2005-03-10
  • 打赏
  • 举报
回复
对于问题2,我自己的解决的就用那个字符串do后加?传递的,在servlet中用request.getParameter("....");获得,这是中文可以得到。


大家还有没有想说的???

要不就结帐了。
ailove01 2005-03-10
  • 打赏
  • 举报
回复
谢谢楼上的,对于第二个问题???
OneEyeWolf 2005-03-10
  • 打赏
  • 举报
回复
对于从DataSource中得到的连接。
用完后,最好要立即返回的。
conn.close并不是关闭连接,而是将连接归还给连接池的。
所以下一次仍然可以从连接池中取出。

注意这个连接和从DriverManager中得到的连接是不一样的。
conn = DrvierManager.getConnection(url);
这个连接的close是直接关闭的。

而从DataSource中得到的连接,是不用注册在DriverManager中,因此不用DriverManager管理。


81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧