Servlets和JSP开发原则(下)
程序员文章站
2022-06-15 15:22:27
servlets和(sun企业级应用的首选)开发原则(下)(标准化越来越近了):namespace prefix = o ns = "urn:schemas-microsoft-c...
servlets和(sun企业级应用的首选)开发原则(下)
(标准化越来越近了):namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
- 不要“重新发明*”,不要一切从头开始: 通过定制可以提高复用性,不过定制组件仍然需要编写、测试和调试程序。问题是这个事情别人可能已经实现了,而且你的实现方式并不一定比人家做得更好。这就是jsp(sun企业级应用的首选)标准标记库(javaserver pages standard tag library, jstl)要做的事情(jstl请参考jstl官方网站)。jstl提供了循环、读属性、遍历各种数据结构、条件表达式求值等各种标记。它也提供了一些复杂的标记,甚至像解析xml(标准化越来越近了)文档的标记它都有。所以如果你要用到一个标记的话,最好先看看有没有别人已经实现的可以使用,而不要次次从头开始,自己搞一套。
-
使用jstl表达使语言(jstl expression language): 传递给jsp(sun企业级应用的首选)页面的数据一般通过jsp(sun企业级应用的首选)作用域属性或者请求参数来进行。专门为网页开发者设计的表达式语言(expression language, el)把使用作用域属性传递信息作为从业务逻辑向jsp(sun企业级应用的首选)页面传递信息的标准方式。这里要注意的是,el只是jsp(sun企业级应用的首选)技术中关键的一个方面,并不是一种通用的程序设计语言。相反,它只是一种数据访问语言,它可以简化应用程序的数据的访问,不用scriptlet和请求时表达式求值就可以访问数据。
在jsp(sun企业级应用的首选)中,师要使用表达式语法<%= name %>或javabean组件来取得某些变量或属性的值,例如:
<taglib:tag attribute="<%=
pagecontext.getattribute("name") %>">
或
<%= acustomerbean.getaddress().getcountry() %>
表达使语言让网页设计师可以使用简化的语法来访问信息。如果你只是要访问一个简单的变量,你可以使用这样的语法:
<taglib:tag attribute="${name}">
如果你要访问一个嵌套javabean的属性,你可以这样:
<taglib:tag attribute ="${
acustomerbean.address.country}">
表达式语言(el)借用了javascript 的语法,所以如果你对javascript 很熟悉的话,你就会觉得巨爽。
- 使用过滤器(filter): 过滤器是一个对象,可以传输请求或修改响应。它可以在请求到达servlet/jsp(sun企业级应用的首选)之前对其进行预处理,而且能够在响应离开servlet/jsp(sun企业级应用的首选)之后对其进行后处理。所以如果你有几个servlet/jsp(sun企业级应用的首选)需要执行同样的数据转换或页面处理的话,你就可以写一个过滤器类,然后在部署描述文件(web.xml(标准化越来越近了))中把该过滤器与对应的servlet/jsp(sun企业级应用的首选)联系起来。
创建过滤器其实很容易,你只须实现javax.servlet.filter接口及它的三个方法:
public void init(filterconfig config)
public void dofilter(servletrequest req, servletresponse rep,
filterchain chain)
public void destroy()
这样,你就可以完成你的过滤器。
- 使用可移植的安全模型: 大部分的应用服务器都提供了安全模型,不过一般它们都是针对某一个服务器或某一个厂商专有的。如果你的应用需要移植的话,那么你的应用最好使用可以移植的安全模型。如果你的应用有一些预先定义的固定用户的话,那么你可以使用from验证和basic验证。可是如果你要动态生成客户的话(一般都是这种情况),你可能就需要使用服务器特定的api来创建和管理用户。这样当你的应用移植到另外一个服务器时,你可能就会碰到api不兼容的问题。这种情况下,最好的解决方法是使用适配器(adapter)模式(如果你对设计模式不熟悉的话,请参看gof的《设计模式》一书)。
- 用来保存持久性数据: servlet/jsp(sun企业级应用的首选)中可以使用httpsession对象也就是会话对象来保存用户的临时数据。不过如果你想保存持久性数据的时候,你应该使用数据库,数据保存数据会更安全,而且对客户所用的没有什么要求。这样即使你的应用服务器由于某种原因崩溃了,你的数据依然良好。
推荐阅读
-
memcached 和 mysql 主从环境下php开发代码详解
-
Linux下嵌入式Web服务器BOA和CGI编程开发
-
mysql 开发基础系列18 存储过程和函数(下)
-
mysql 开发基础系列21 事务控制和锁定语句(下)
-
JavaWeb开发基础(JSP和JavaBean的认识,如何使用)
-
在Linux下掌握arm和操作系统(2)--开发环境最小系统
-
Mac下搭建go和beego开发环境
-
Android开发使用XML文件定义ImageView的在selected为true和false状态下显示不同的图像
-
JSP servlet与ssh等框架相比,在互联网网站开发和企业级开发中的优劣势分析?
-
[原创] 多memcached 和 mysql 主从 环境下PHP开发: 代码详解_PHP教程