快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
ode to validate users credentials goes here   ... END FUNCTION %> <html> <head> <title>Login example</title> </head> <body> <% IF (REQUEST.SERVERVARIABLES("REQUEST_METHOD") = "GET") THEN %>   <form action="login.asp" method="post">   <!-- login form fields go here -->   </form> <% ELSE userName = REQUEST.FORM("username") password = REQUEST.FORM ("password")     IF (ValidateUser(userName, password)) THEN            RESPONSE.REDIRECT("mainpage.asp") ELSE ... END IF END IF % >   <font color="red"><b><%=LoginMessage% ></b></font> </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>

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

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

时间:2011-04-09 IBM Jeff Wilson

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

在 ASP 端,可以以前一个例子为基础建立一种更好的方法,不过除了 login.asp 文件外 ,还使用只包含验证逻辑的一个 include ASP 文件。这样您就可以重用其他 ASP 文件中的 代码。

J2EE 端的一种更好方法是将应用逻辑转移到一个 Java Servlet,从而使 JSP 页面仅限 于使用 HTML 组件。现在验证逻辑独立于显示表单的页面,这是一种改进,而 JSP 页面仅限 于使用 HTML 组件也是一种改进。清单 25 显示了如何将应用逻辑放到 servlet 中从而简化 JSP 页面。

清单 25. J2EE:JSP 页面中改进的“意大利面条式”代码

<html> <head> <title>Login example</title> ... </head> <body> <form method="POST" target="LoginServlet"> <!-- login form fields go here --> </form> </

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号