网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 开源技术 > Struts > Struts,MVC 的一种开放源码实现  

Struts,MVC 的一种开放源码实现

2007-04-17  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

简介

    小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。网页设计人员(或者 HTML 开发人员)必须理解颜色、用户、生产流程、网页布局、浏览器兼容性、图像创建和 JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为网页设计人员和 Java 开发人员提供了一种联系钮带。 网管网www_bitscn_com

如果您开发过大型 Web 应用程序,您就理解 变化 这个词的含义。“模型-视图-控制器”(MVC) 就是用来帮助您控制变化的一种设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合。Struts 是一种 MVC 实现,它将 Servlet 2.2 和 JSP 1.1 标记(属于 J2EE 规范)用作实现的一部分。尽管您可能永远不会用 Struts 实现一个系统,但了解一下 Struts 或许使您能将其中的一些思想用于您以后的 Servlet 的 JSP 实现中。 网管联盟bitsCN@com

在本文中,我将以一个 JSP 文件为起点讨论该网页的优缺点,该文件中使用的元素可能是您所熟悉的。随后我将讨论 Struts,并说明它是如何控制您的 Web 项目中的变化并提高专业化水平的。最后,我将重新开发这个简单的 JSP 文件,在开发过程中我已顾及到网页设计人员和变化。 网管联盟bitsCN_com

  网管下载dl.bitscn.com

  一个 JSP 文件就是一个 Java servlet

中国网管论坛bbs.bitsCN.com

    JavaServer Page (JSP) 文件只是审视 servlet 的另一种方式。JSP 文件的概念使我们能够将 Java servlet 看作一个 HTML 网页。JSP 消除了 Java 代码中经常出现的讨厌的 print() 语句。JSP 文件首先被预处理为 .java 文件,然后再编译为 .class 文件。如果您使用的是 Tomcat,则可以在 work 目录下查看预处理后的 .java 文件。别的容器可能将 .java 和 .class 文件存储在其他位置;这个位置与容器有关。图 1 说明了从 JSP 文件到 servlet 的流程。

网管网www.bitscn.com

JSP to servlet flow

    图 1. 从 JSP 文件到 servlet 的流程

网管网www.bitscn.com

    (这与 Microsoft 的 Active Server Page (ASP) 明显不同。ASP 被编译到内存中,而不是编译到一个单独的文件中。) 中国网管联盟bitsCN.com

  简单的独立 JSP 文件

网管网www_bitscn_com

    在小型 JSP 应用程序中,经常会看到数据、业务逻辑和用户界面被组合在一个代码模块中。此外,应用程序通常还包含用来控制应用程序流程的逻辑。清单 1 和图 2 展示了允许用户加入一个邮件列表的一个简单 JSP 文件。 中国网管论坛bbs.bitsCN.com



  清单 1. join.jsp -- 一个简单的请求和响应 JSP 文件

网管网www.bitscn.com

网管下载dl.bitscn.com

<%@ page language="java" %>

网管联盟bitsCN@com

<%@ page import="business.util.Validation" %> 网管联盟bitsCN@com

<%@ page import="business.db.MailingList" %>

网管论坛bbs_bitsCN_com

<% 中国网管联盟bitsCN.com

String error = "";

网管论坛bbs_bitsCN_com

String email = request.getParameter("email"); 网管网www.bitscn.com

// 是否有电子邮件地址 中国网管联盟bitsCN.com

if( email!=null ) { 网管论坛bbs_bitsCN_com

    // 验证输入...

中国网管论坛bbs.bitsCN.com

    if( business.util.Validation.isValidEmail(email) ) {

网管bitscn_com

        // 存储输入... 中国网管联盟bitsCN.com

        try { 网管联盟bitsCN@com

            business.db.MailingList.AddEmail(email); 中国网管联盟bitsCN.com

        } catch (Exception e) {

网管bitscn_com

            error = "Error adding email address to system.  " + e; 中国网管联盟bitsCN.com

        } 网管联盟bitsCN_com

        if( error.length()==0 ) { 网管联盟bitsCN@com

%> 网管联盟bitsCN_com

            // 重定向到欢迎页...

网管联盟bitsCN_com

            <jsp:forward page="welcome.html"/>

网管u家u.bitscn@com

<% 网管下载dl.bitscn.com

        } 网管网www_bitscn_com

    } else {

网管u家u.bitsCN.com

        // 设置错误消息并重新显示网页

中国网管联盟bitsCN.com

        error = email + " is not a valid email address, please try again."; 中国网管联盟bitsCN.com

    }

网管论坛bbs_bitsCN_com

} else {

网管下载dl.bitscn.com

    email = "";

网管u家u.bitscn@com

} 网管网www.bitscn.com

%>

网管u家u.bitsCN.com

<html>

网管u家u.bitsCN.com

<head> 网管u家u.bitsCN.com

<title>Join Mailing List</title>

网管联盟bitsCN@com

</head>

网管u家u.bitscn@com

<body>

网管论坛bbs_bitsCN_com

<font color=red><%=error%></font><br> 网管下载dl.bitscn.com

<h3>Enter your email to join the group</h3> 网管联盟bitsCN@com

<form action="join.jsp" name="joinForm">

网管联盟bitsCN_com

    <input name="email" id="email" value=<%=email%>></input>

网管bitscn_com

    <input type=submit value="submit"> 网管网www_bitscn_com

</form> 网管网www.bitscn.com

</body> 中国网管论坛bbs.bitsCN.com

</html>

网管论坛bbs_bitsCN_com

 

网管u家u.bitsCN.com

Simple request and response JSP


    图 2. 在简单的请求和响应中,JSP 文件设置数据、控制到下一个网页的流程并创建 HTML

网管下载dl.bitscn.com

    这个邮件列表 JSP 文件是一个独立的、自主完成所有任务的模块。未包含在这个 JSP 文件中的仅有代码是包含在 isValidEmail() 中的实际验证代码和将电子邮件地址存入数据库的代码。(将 isValidEmail() 方法分离到可重用的代码中似乎是当然的选择,但我曾见过直接嵌入网页中的 isValidEmail() 代码。单页方法的优点是易于理解,并且最初也易于构建。此外,对于各种图形化开发工具,入门也很容易。

网管联盟bitsCN@com


TAGs实现   源码   开放   Struts   JSP   一个   文件   标记   代码   Java    
 上一篇:Struts的静态数据验证方法   下一篇:struts2的demo中show case的crud示例
Struts,MVC 的一种开放源码实现 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: