关于使用Servlet或者用JSP+JavaBeans,两中方式的异同及优略,请高手讲一下!!!!! 各有好处,最好是jsp+servlet+javaBean使用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说的是EJB么?1 JSP2JSP+JAVABEAN3JSP+JAVABEAN+SERVLET4JSP+JAVABEAN+SERVLET+EJB难度上升,优势好处也上升。 大家有没有考虑过JSP+JAVA BEAN会不会有多线程的问题!呵呵!我先说一点:JSP没有线程问题,SERVLET可能有线程问题!那JAVA BEAN呢!? 大家有没有考虑过JSP+JAVA BEAN会不会有多线程的问题!呵呵!我先说一点:JSP没有线程问题,SERVLET可能有线程问题!那JAVA BEAN呢!? pengji(彭乃超) :你说的线程问提是什么?在什么情况下会造成影响?能说详细点吗? 没有多线程访问问题,一个请求生成一个Server实例,也没有多个线程对同一个Servlet做操作的情况,所以Servlet中的JavaBean也没有多线程问题。 serlvet会出现多线程问题的当第一次请求servlet时,生成一个servelt实例当第二次请求时,就不再生成新的实例了,而使用已经生成好的实例那么一个登陆控制servlet就会有多线程访问的情况产生对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码 servlet实例的个数及因此引发的问题 作者:Cherami 类型:翻译 email:[email protected] 在缺省情况下,一个容器中只为每个servlet定义生成一个servlet类实例。在servlet实现SingleThreadModel接口的情况下,容器可以生成多个实例以应付沉重的请求,也可以将请求排队发送给同一个实例(对于一个高性能的容器,也可能是这两种方式的结合,因为实例的个数是有限制的,因此在线程安全方式下一个实例会有多个请求排队等待服务同时容器中多个实例可以对请求进行服务)。对于为可分布式(distributable)应用开发的servlet而言,在每个JVM中对每个SERVLET定义都会有一个实例,如果在这样的应用中servlet也实现了SingleThreadModel接口,那么在每个JVM中每个servlet定义也可能有多个实例。 使用SingleThreadModel接口可以保证一个线程一次性执行完给定实例的service方法,需要注意的是这个保证只能应用于servlet实例,那些可以被多个servlet实例访问的对象(例如HttpSession实例)依然对多个servlet有效,即使他们实现了SingleThreadModel。 根据规范中的这些说明,我们在实现自己的serlvet时需要考虑多线程的问题,一般而言,不要在servlet中定义可变的成员,只能定义一些常量(使用final定义,如果没有使用,应该注意在程序中不应该修改其值),笔者见过一个定义很差的servlet: public class SomeHttpServlet extends HttpServlet { HttpSession session; ... } 这样的servlet在使用中一定会出现问题,所有的用户都会共用一个session(这样很节约系统资源,不是吗?:)),因此一个用户请求的信息突然跑到另一个用户的ie窗口豪不奇怪。而且,即使你的servlet实现了SingleThreadModel接口也不要定义可变的成员,因为该成员的信息会保留下来,而这对于其它的用户而言在绝大部分情况下是毫无意义的。(你确定会有意义的情况例外,例如某种计数) 另外需要说明的是上面说明中都是针对servlet定义而言的,而servlet定义定义不等价servlet类定义,即一个servlet类可能会有多个servlet定义,但是笔者还没有找到“servlet定义”的定义,规范中提到实例化一个servlet时可能会有不同的初始参数,但是这个也不同于带参数的多个构造方法。一般情况下我们可以认为一个servlet类对应一个servlet定义。 同意楼上要是一个请求生成一个Server实例的话,10000个用户一起上,象CSDN这样再NB的机器都要挂掉 Patrick_DK(减减)你能说的简单点吗?我咋看不懂呢?你说了那么多理论,能不能结合一两个实际SERVLET程序来讲一下? struts2 标签做图片上传问题 如何使用itext在网页中显示pdf? 点击一个按钮,之后读取数据库里面的数据,并且写入到txt文档里面,txt文档指定的路径是在根目录下的 commons-fileupload 1.1 有没限制上传文件格式的方法? 急!!! 一个非常简单的问题 字符串问题,在线等待! jsp中文问题 如何让weblogic中部署的jar和war文件自动加载? 错误页面怎样写入创建数据库连接的javabeab中? 急呀,语句执行不到了?????? 初级问题,请问jakarta-taglibs中中文怎么解决?
1 JSP
2JSP+JAVABEAN
3JSP+JAVABEAN+SERVLET
4JSP+JAVABEAN+SERVLET+EJB
难度上升,优势好处也上升。
我先说一点:JSP没有线程问题,SERVLET可能有线程问题!那JAVA BEAN呢!?
我先说一点:JSP没有线程问题,SERVLET可能有线程问题!那JAVA BEAN呢!?
你说的线程问提是什么?
在什么情况下会造成影响?能说详细点吗?
作者:Cherami
类型:翻译
email:[email protected]
在缺省情况下,一个容器中只为每个servlet定义生成一个servlet类实例。在servlet实现SingleThreadModel接口的情况下,容器可以生成多个实例以应付沉重的请求,也可以将请求排队发送给同一个实例(对于一个高性能的容器,也可能是这两种方式的结合,因为实例的个数是有限制的,因此在线程安全方式下一个实例会有多个请求排队等待服务同时容器中多个实例可以对请求进行服务)。对于为可分布式(distributable)应用开发的servlet而言,在每个JVM中对每个SERVLET定义都会有一个实例,如果在这样的应用中servlet也实现了SingleThreadModel接口,那么在每个JVM中每个servlet定义也可能有多个实例。
使用SingleThreadModel接口可以保证一个线程一次性执行完给定实例的service方法,需要注意的是这个保证只能应用于servlet实例,那些可以被多个servlet实例访问的对象(例如HttpSession实例)依然对多个servlet有效,即使他们实现了SingleThreadModel。
根据规范中的这些说明,我们在实现自己的serlvet时需要考虑多线程的问题,一般而言,不要在servlet中定义可变的成员,只能定义一些常量(使用final定义,如果没有使用,应该注意在程序中不应该修改其值),笔者见过一个定义很差的servlet:
public class SomeHttpServlet extends HttpServlet {
HttpSession session;
...
}
这样的servlet在使用中一定会出现问题,所有的用户都会共用一个session(这样很节约系统资源,不是吗?:)),因此一个用户请求的信息突然跑到另一个用户的ie窗口豪不奇怪。而且,即使你的servlet实现了SingleThreadModel接口也不要定义可变的成员,因为该成员的信息会保留下来,而这对于其它的用户而言在绝大部分情况下是毫无意义的。(你确定会有意义的情况例外,例如某种计数)
另外需要说明的是上面说明中都是针对servlet定义而言的,而servlet定义定义不等价servlet类定义,即一个servlet类可能会有多个servlet定义,但是笔者还没有找到“servlet定义”的定义,规范中提到实例化一个servlet时可能会有不同的初始参数,但是这个也不同于带参数的多个构造方法。一般情况下我们可以认为一个servlet类对应一个servlet定义。
你能说的简单点吗?我咋看不懂呢?
你说了那么多理论,能不能结合一两个实际SERVLET程序来讲一下?