日期:2014-05-17  浏览次数:20638 次

关于servlet中的成员变量问题
大家好,我现在在做毕设(物业系统),JSP+Servlet+JDBC+Oracle,下面是一个业主的Servlet,因为增删改查逻辑都要用到一些字段,如ownerId,roomId,flag(标记)等,之前我把这些字段在每个方法里都声明成局部变量,后来我考虑既然很多方法都需要,那么能不能只声明一次(即声明成成员变量),不知道这么做会不会有问题,比如同步问题等,请大家多多指教,谢谢!

public class OwnerServlet extends HttpServlet {

List<Build> buildlist = new ArrayList<Build>();
RoomDao roomDao = new RoomDao();
OwnerDao ownerDao = new OwnerDao();
String ownerId = "";
String roomId = "";
String roomStatus = "";
boolean flag = false;


------解决方案--------------------
servlet是线程不安全的 一般不要轻易定成员变量 ,用局部变量吧
------解决方案--------------------
Servlet 是单例的,也就是成员变量可能被所有请求并发访问。

如果你确认所有这些访问都是只读,或者都被很好的进行了同步管理,就没有问题。但需要注意到同步的代价相比多申请点内存而言,往往是高昂的。


如果说这些访问是各自需要修改这些成员变量来使用的,这么做就会产生严重后果。
------解决方案--------------------
你可以將request.getParameter("");這樣獲取表單值的方式寫在一個通用method中。
------解决方案--------------------
quest.getParameter("");
返回值:String
用来获取页面传递过来的参数。
------解决方案--------------------
探讨

引用:

你可以將request.getParameter("");這樣獲取表單值的方式寫在一個通用method中。

那方法的返回值 应该是?