JSP和Java Servlet问题

时间:2011-08-03 17:56:00

标签: java jsp servlets

我是JSP和Java Servlet的新手。我对Session对象很困惑。我看到会话当我学习PHP会话和cookie。有完全不同的东西吗?以及如何创建,组织和使用Session对象。这个对象是JSP还是Java Servlet?有人可以用语言告诉我(比如概念)。另外,在什么情况下JSP页面适合?(我何时应该使用Java Servlet?何时应该使用Java Servlet页面。)例如,对于Java Servlet对象,运行了一个电子邮件站点。会有很多用户。一个Java Servlet对象如何处理来自这么多浏览器的交互?(如数百个日志记录,读取等)我知道应该只存在一个Java Servlet对象的副本。但为什么?如果只有一个,那么它何时被创建和销毁。啊......这么多问题。如果有人可以帮助我,我将非常感激。万分感谢!

3 个答案:

答案 0 :(得分:2)

  

?以及如何创建,组织和使用Session对象。

这取决于它的实现,here是合同

  

这个对象是JSP还是Java Servlet?

这是jsp中的隐式对象,可以从servlet的服务方法中从request实例中检索

  

JSP页面适合什么情况?(我什么时候应该使用Java Servlet?何时应该使用Java Servlet页面。)例如,对于Java Servlet对象,运行一个电子邮件站点。会有很多用户。一个Java Servlet对象如何处理来自这么多浏览器的交互

使用jsp作为视图servlet作为控制器,参见MVC

  

现在应该只存在一个Java Servlet对象的副本。但为什么?如果只有一个,那么它何时被创建和销毁。

每个请求都在不同的线程中提供,所以为什么要创建不同的实例,我们可以让一个servlet实例为我们做这一切。并且它一直活着直到垃圾收集清除它

参见: Head First

答案 1 :(得分:1)

如果您查看Java Servlet Life Cycle,我认为您的许多问题都会得到解答。

答案 2 :(得分:1)

  1. 您可以将会话对象视为文件。每个用户都有一个名为jsessionid的id会话,会话结构通常是存储键值的地图数据结构
  2. 在Servlert中,您可以构建一个像这样的会话对象

    HttpSession session = request.getSession(true);
    

    然后您可以像这样添加项目

    session.setAttribute(string ,object); ex : session.setAttribute("username","foo");
    

    会话对象存在于servlet和jsp中,而btw jsp最终是一个servlet 但不同的是,当你想在jsp页面中使用session时,不需要构造它。默认情况下它的默认使用它

    session.setAttribute(string,object);
    
    1. 当页面包含大量html元素并且有很多设计时使用的JSP页面 和jsp让你轻松维护页面,另一方面你可以使用servlet作为jsp页面 但是你将处理每行html源代码
    2. 首选JSP作为MVC模型中的视图 和servlet作为控制器。

      服务器为每个servlet保留一个对象,当一个新请求到来时,servlet对象将新请求(客户端)放入一个新线程中,这样如果你一次有100个客户端,那么 服务器中的100个线程。但是您可以将服务器配置为构造servlet的多个对象。

      我希望我能帮助你..