快速业务通道

走上开放之路: .NET开发人员的J2EE基础(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
David Carew

“意大利面条式”代码

在 ASP.NET 方,“意大利面条式”代码方法使用单个 .aspx 文件来同时包含应用逻辑和 HTML 表单。不存在代码分离(code-behind)。(不推荐对现实中的例子采用这种方法,因 为这样所有表示逻辑和应用逻辑都将是单个文件,从而阻止了您复用用于验证用户凭据的代 码。)该代码的轮廓看起来类似清单 23 中所示的代码。

清单 23. ASP.NET 中的“意大利面条式”代码

<html> <head> <title>Login example</title> <script language="C#" runat=server> ... private void btnLogin_Click(object sender, System.EventArgs e) {    // Get the form field values    ...    // Validate the username and password    if (ValidateUser(username, password) {     Response.Redirect("mainpage.aspx");    } } private bool ValidateUser(string userName, string password) {     ... } ... </script> </head> <body>    <form runat="server">    <!-- login form fields go here -->    </form> </body> </html>

正如清单 24 所示,您可以在 J2EE 中采用相同的方法,使用单个 JSP 页面来同时包含 表单和应用逻辑。

清单 24. J2EE 中的“意大利面条式”代码

<html> <head> <title>Login example</title> <%! private boolean validateUser(String userName, String password) {     ... } %> ... </head> <body> <%    if (request.getMethod().equals("GET") ) { %>    <form method="POST" target="login.jsp">    <!-- login form fields go here -->    </form> <% }    else {      String userName = request.getParameter("username");      String password = request.getParameter("password");       if (validateUser(userName, password)) {        response.sendRedirect("mainpage.jsp");      }      ...   } %> </body> </html>

JSP 模型不是事件驱动的,因此您需要检查表单是否被发送回去了,方法是检查该请求, 并在它不是 POST 请求时包括表单的 HTML。如果它是 POST 请求,您将使用 JSP 中声明的 一个方法来验证登录。注意 <%! 的使用表明该代码是一个方法。Scriptlet 代码将在 JSP 页面处理期间遇到它们的时候执行,因此用于 scriptlet 的标签( <% %> )对 方法无效。还要注意如何使用 if/then/else 编程结构来容易地包括或排斥较大的 HTML 块 。与在 ASP.NET 例子中一样,不推荐将此方法用于 J2EE 开发。表示代码(HTML)和应用逻 辑的混合仅允许很少的复用,并且使得代码难于维护。

走上开放之路: .NET开发人员的J2EE基础(下)(5)

时间:2011-04-09 IBM David Carew

改进的“意大利面条式”代码

在 ASP.NET 方,一种更好的方法建立在前一个例子基础上,不过除了 .aspx 文件外,它 还使用了代码分离文件。事件处理代码和用户验证代码转移到了一个代码分离文件中,原先 的 .aspx 文件只剩下 HTML 表单和其他 HTML 元素。这相对于前一种方法来说当然是一种进 步;表示代码更清楚地分离了,这样可以让一个 HTML 设计师负责表示,让一个程序员负责 代码分离文件。

如果使用标准 J2EE 组件,您就无法使用 ASP.NET 的事件驱动的代码分离文件方法。 J2EE

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号