打印本文 打印本文 关闭窗口 关闭窗口
J2EE表现层设计思考_
作者:武汉SEO闵涛  文章来源:敏韬网  点击数615  更新时间:2009/4/22 23:27:24  文章录入:mintao  责任编辑:mintao
  设计表现层时需要考虑的几个问题

  开发者在设计表现层时,可以使用不同的模型,这时需要考虑一些相关的设计问题。这些问题和模型关系的紧密程度也各有不同,它们可以影响系统的各个方面,包括有安全、数据完整性、可管理性和扩展性。虽然这些设计问题大部分都可以用模型的形式表示,但我们不打算这样做,因为这样更为抽象,我们选择以非正式的文档形式表示。我们只是根据不同的模型,将每个需要考虑的问题列出来。

  Session管理

  用户Session指的是跨越一个客户和服务器多个请求间的一个对话。我们将在以下部分根据用户Session的概念讨论这个问题。

  客户端的Session状态

  在客户端保存Session的状态指的是将Session的状态串行化并且嵌入到返回给客户的HTML页面中。

  在客户端保存Session的状态有这以下的好处:

   . 它实现起来相对容易

   . 在保存少量的状态信息时,它工作得很好

  此外,这个策略还消除了跨越多个服务器复制状态的问题,例如多个服务器间实现负载均衡时就会遇到这种情况。

  在客户端保存Session状态通常有两个方法--HTML的隐藏字段和HTTP cookies--我们将在下面讨论这些策略。第三个策略则是在每个页面的URL中嵌入Session状态信息,例如<form action=someServlet?var1=x&var2=y method=GET>。虽然第三个方法比较少见,但它也有着其它两个方法的许多限制。

  HTML的隐藏字段(HTML Hidden Fields)

  虽然这个方法实现起来相对容易,不过使用HTML隐藏字段在客户端保存Session状态仍然有着许多的缺点。这些缺点在保存大量的状态时尤为突出。保存大量的状态将会对性能有很大的影响。因为每次发出请求和响应时,都需要在网络中传送这些状态信息。

  此外,当你利用隐藏的字段来保存Session状态时,这些持久的状态值只能是字符串值,因此所有的对象引用都必须被“字符串化”,而这些信息除非经过特别的加密,否则都是以明文的形式显示在HTML的源代码中。

  HTTP Cookies

  与隐藏字段的方法一样,使用HTTP Cookies的方式也是相对简单的。不幸的是,这两个方法有着许多相同的缺点。特别是,在保存大量的状态信息时将会对性能产生很大的影响,因为在每次的请求和响应时,都必须在网络上传送全部的Session状态信息。

  在客户端保存Session状态时,我们也会遇到大小和类型的局限问题。cookie headers的大小是有限制的,这样就限制了可以被持久保存的数据量,而且和隐藏字段的方法一样,当你使用cookies来保存Session状态时,这些持久的状态信息只能使用字符串值。

  在客户端保存Session状态会带来的安全问题

  当你在客户端保存Session状态时,你必须考虑到由此带来的安全问题。如果你不想数据暴露给客户端,你就需要一些方法来加密数据,从而保证数据的安全。

  虽然在客户端保存Session状态相对容易实现,不过它有着很多的缺点,这些都要我们花费时间去解决。对于需要处理大量数据的项目,特别是企业的系统,使用这种方式是得不偿失的。

打印本文 打印本文 关闭窗口 关闭窗口