servlet注意事项-阿里云开发者社区

开发者社区> edwardsbean> 正文

servlet注意事项

简介: <p><span style="font-size:24px; color:#ff0000">1:乱码</span></p> <p>没有设置charset=gbk文本会显示乱码,所以要加上,但是charset = gbk,如果在等好旁边有空格,则无法识别该语句,仍然出现乱码。所以得出结论:小心空白符。</p> <p>response.setContentType("text/html;
+关注继续查看

1:乱码

没有设置charset=gbk文本会显示乱码,所以要加上,但是charset = gbk,如果在等好旁边有空格,则无法识别该语句,仍然出现乱码。所以得出结论:小心空白符。

response.setContentType("text/html;charset = gbk");


2:用response.sendRedirect(String)来跳转页面和传递参数

sendRedirect的参数是一个字符串。假设已拥有一个String u = "123",要把这个String 传递给一个Wel的servlet,

那么语句是sendRedirect("Wel?uvalue="+u); //如果要传递多个值,那么它们之间要用&号隔开。(“wel?uvalue="+u+"&u2value="+u2)

在Wel里面如何得到这个值呢?用request.getParameter("uvalue")

很遗憾,sendRedirect只能传递字符串,而不能传递对象。



3:关于getSession()参数的true,false的区别。

getSession方法返回与当前请求相关的httpSession对象.
其根据传递的参数来决定是否创建新的httpSession对象.
参数为true,则在相关的httpSession对象不存在时创建并返回一个新的httpSession对象,否则不创建新的httpSession对象,而是返回null

最好用true,不然对httpsession调用函数时,有可能会出现nullpointerException.调用空指针


4:链接数据库的具体参见我日志中的java链接数据库


5:在servlet中引用图片。

很简单,在工程目录下创建一个imgs文件夹,里面放图片1.gpg

out.println("<img  src='./imgs/1.jpg'>")

或者

out.println("<img  src='imgs/1.jpg'>")

注意,这里imgs文件夹要放在tomcat/webapps/工程目录/

而不是在workspace里面的工程目录下。(应该是可以调整的,具体就没调试过)

可以用getContextPath获取目录

另外
用Servlet插入图片eg:

pw.println("<img src='"+req.getContextPath()+"/images/bf1.jpg' width='200' hight='200'>");

用jsp插入图片eg:

  <img src="./images/logo4.gif">



6:网页生成了 过多的重定向

有可能页面之间的跳转形成了循环。



7:IllegalStateException:response already commited

在response.sendRedirect()方法后加return语句即可如下:
                       response.sendRedirect("login.jsp");
                       return;

否则有可能运行下一个sendRedirect();





8:关于 hot code replace fail 问题


1.小规模的修改,没有改变类的块结构,不用重启服务器,也可以立即生效.(前提是同步发布,即要勾上菜单

project->build automatically)

2.修改了类的结构(如增加或删除类的方法,字段).如果是这种情况,myeclipse会有"hot code replace fail"的提

示,和失败的原因的说明(如add method not implemented, scheme change not implemented 等),并且提

示重新启动服务器.这种情况要重启服务器才可以生效.

3.还有一种情况,对java文件进行小的修改(如 代码中不重要的地方加一个空格 )然后保存,myeclipse也会提示

hot code replace fail.这种情况遇到的几率很小. 这种情况的很可能是服务器(如tomcat)下面发布了多个web

应用程序,而所修改的类的名字在多个web应用中存在(如 有app1和app2两个应用, app1中有个类

com.company.LoginAction, app2中也有个类com.company.LoginAction. 修改的是app1中的LoginAction

).

个人猜测:jvm在进行hot code replace的之前,将所修改的类(app1中的LoginAction)与另外一个应用中的同名

类(app2中的LoginAction)对比,发现两者有结构上的差异,于是认为该类的改变很大,不能够进行hot code

replace.

有种简单的方法可以验证,是否属于第三种情况.只部署一个工程在服务器下,启动后,再修改java类,如果是小的修

改,这个时候myeclipse就不会再有hot code replace fail 的提示了.


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10086 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2962 0
servlet注意事项
<p><span style="font-size:24px; color:#ff0000">1:乱码</span></p> <p>没有设置charset=gbk文本会显示乱码,所以要加上,但是charset = gbk,如果在等好旁边有空格,则无法识别该语句,仍然出现乱码。所以得出结论:小心空白符。</p> <p>response.setContentType("text/html;
1458 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11629 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13891 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11890 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4506 0
+关注
98
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载