跳转到主要内容
中国
[ 选择 ]
窗体顶端
窗体底端
首页
解决方案
按行业分类
金融业
银行业
保险业
零售业
制造业
日常消费品
饮料烟草
流通业
电子行业
电信业
媒体与娱乐业
交通运输业
航空航天造船业
汽车制造业
石油石化业
政府与公众事业
教育
医疗与生命科学
按业务需求分类
IT 基础架构解决方案
商务智能(BI)
供应链管理(SCM)
企业资源规划(ERP)
客户关系管理(CRM)
产品生命周期管理(PLM)
办公自动化(OA)
企业资产管理(EAM)
内容管理
信息集成
按顶级业务合作伙伴分类
IBM 和 Cisco
IBM 与 Oracle
IBM 与 SAP
o业务咨询
oIBM 动态架构
oIBM智慧运作
oIBM新锐洞察
oIBM智慧产品与服务
o面向服务架构 (SOA)
o融资租赁
o面向中型企业及机构的解决方案
o软件行业解决方案
ojsp帮助文档IBM 区域解决方案
o更多业务解决方案
服务
按服务项目分类
弹性运维服务
业务连续与灾难恢复服务
企业终端用户服务
网络服务
IT 策略与基础架构服务
维护与技术支持服务
中间件服务
外包服务
企业 IT 安全服务
服务器服务
数据中心及智能化集成服务
数据与存储服务
按业务类型分类
竞争策略
营运/委外
顾客服务及忠诚度
通路策略实施
IT 最适化
全新的工作环境
灵活可靠的基础建设
安全和防御
价值链效益
按行业分类
跨行业
金融业
银行业
保险业
零售业
消费品
批发业
电子业
电信业
媒体与娱乐
旅游和运输业
汽车行业
石油石化行业
政府部门
能源与公用事业
教育业
医疗保健
生命科学
o培训服务
o软件服务
o面向中型企业及机构的服务
o更多服务
产品
o特惠产品和方案
软件
所有软件
产品目录
Information Management 信息管理软件
Lotus 协作办公软件
Rational 开发软件
Tivoli 服务管理软件
WebSphere 应用系统和整合软件
System z 服务器软件
Systems 与服务器
所有 IBM Systems 和服务器
Power Systems
System i (i系列)服务器
System p (p系列)服务器
System x (x系列)服务器
System z (z系列)服务器
BladeCenter 刀片服务器
OpenPower 服务器
集服务器
UNIX 服务器
Linux 服务器
POWER 处理器的服务器
基于英特尔架构的服务器
存储产品
所有存储产品
磁盘存储系统
磁带存储系统
存储区域网络
网络连接存储
存储软件
存储产品排序(A - Z)
o网络安全
o零售终端
o打印机 (InfoPrint)
oIBM 官方认证再制造设备
o选件
o中低端产品特惠商城
o面向中型企业及机构的特惠产品
支持与下载
下载
驱动程序和软件下载
o故障诊断与排除
o搜索
按产品查看
软件产品
服务器
存储产品
打印机 (InfoPrint)
o个性化支持
o产品资料中心
电子化工具
提交服务请求
专项服务
o技术知识库
o在线客户支持
o保修、许可和维护
个性化服务
o我的账户
我的收藏夹
o我的概要信息
客户支持
合同
订单与发货
库存与维护
发票与付款
更多客户支持
o了解更多
developerWorks 中国
Java technology
文档库
Struts,MVC 的一种开放源码实现
用这种 servlet 和 JSP 框架管理复杂的大型网站
Malcolm Davis(malcolm@nuearth), 顾问
简介: 本文介绍 Struts,它是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现。Struts 可帮助您控制 Web 项目中的变化并提高专业化水平。尽管您可能永远不会用 Struts 实现一个系统,但您可以将其中的一些思想用于您以后的 servlet 和 JSP 网页的实现中。
标记本文!
发布日期: 2001 年 2 月 23 日
级别: 初级
访问情况 711 次浏览
建议: 0 (添加评论)
平均分 (共 3 个评分 )
简介
小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。网页设计人员(或者 HTML 开发人员)必须理解颜、用户、生产流程、网页布局
、浏览器兼容性、图像创建和 JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为网页设计人员和 Java 开发人员提供了一种联系钮带。
如果您开发过大型 Web 应用程序,您就理解 变化 这个词的含义。“模型-视图-控制器”(MVC) 就是用来帮助您控制变化的一种设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合。Struts 是一种 MVC 实现,它将 Servlet 2.2 和 JSP 1.1 标记(属于 J2EE 规范)用作实现的一部分。尽管您可能永远不会用 Struts 实现一个系统,但了解一下 Struts 或许使您能将其中的一些思想用于您以后的 Servlet 的 JSP 实现中。
在本文中,我将以一个 JSP 文件为起点讨论该网页的优缺点,该文件中使用的元素可能是您所熟悉的。随后我将讨论 Struts,并说明它是如何控制您的 Web 项目中的变化并提高专业化水平的。最后,我将重新开发这个简单的 JSP 文件,在开发过程中我已顾及到网页设计人员和变化。
回页首
一个 JSP 文件就是一个 Java servlet
JavaServer Page (JSP) 文件只是审视 servlet 的另一种方式。JSP 文件的概念使我们能够将 Java servlet 看作一个 HTML 网页。JSP 消除了 Java 代码中经常出现的讨厌的 print() 语句。JSP 文件首先被预处理为 .java 文件,然后再编译为 .class 文件。如果您使用的是 Tomcat,则可以在 work 目录下查看预处理后的 .java 文件。别的容器可能将 .java 和 .class 文件存储在其他位置;这个位置与容器有关。图 1 说明了从 JSP 文件到 servlet 的流程。

图 1. 从 JSP 文件到 servlet 的流程
(这与 Microsoft 的 Active Server Page (ASP) 明显不同。ASP 被编译到内存中,而不是编译到一个单独的文件中。)
简单的独立 JSP 文件
在小型 JSP 应用程序中,经常会看到数据、业务逻辑和用户界面被组合在一个代码模块中。此外,应用程序通常还包含用来控制应用程序流程的逻辑。清单 1 和图 2 展示了允许用户加入一个邮件列表的一个简单 JSP 文件。

清单 1. join.jsp -- 一个简单的请求和响应 JSP 文件
<%@ page language="java" %>
<%@ page import="business.util.Validation" %>
<%@ page import="business.db.MailingList" %>
<%
String error = "";
String email = Parameter("email");
// 是否有地址
if( email!=null ) {
    // 验证输入...
    if( business.util.Validation.isValidEmail(email) ) {
        // 存储输入...
        try {
            business.db.MailingList.AddEmail(email);
        } catch (Exception e) {
            error = "Error adding email address to system.  " + e;
        }
        if( error.length()==0 ) {
%>
            // 重定向到欢迎页...
            <jsp:forward page="welcome.html"/>
<%
        }
    } else {
        // 设置错误消息并重新显示网页
        error = email + " is not a valid email address, please try again.";
    }
} else {
    email = "";
}
%>
<html>
<head>
<title>Join Mailing List</title>
</head>
<body>
<font color=red><%=error%></font><br>
<h3>Enter your email to join the group</h3>
<form action="join.jsp" name="joinForm">
    <input name="email" id="email" value=<%=email%>></input>
    <input type=submit value="submit">
</form>
</body>
</html>


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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。