通过代码示例跟我学J2EE JSP组件技术及应用实例(第4部分)
- 格式:pdf
- 大小:534.88 KB
- 文档页数:16
1.1跟我学UML建模工具StarUML(第8部分)——应用StarUML创建组件图的创建示例1.1.1UML中的组件图1、UML中的组件图(1)UML中的组件组件一般表示实际存在的、物理的物件,它是软件系统的一个物理单元,代表系统的一个物理实现块。
(2)组件图的作用1)描述软件组件以及组件之间的关系2)每个组件图只是系统实现视图的一个图形表示,只有各个组件组合起来,才能表示系统完整的实现视图(3)组件图中的三大组件从MVC的角度来看,在一个组件图中应该包括有边界组件、控制组件和实体组件三大部分。
下面为一个系统中的三大组件的关系图示。
(4)组件图的作用1)能够帮助客户理解最终的系统结构2)使开发实现工作有一个明确的目标3)组件图有利于帮助开发组中的其他人员(如帮助文档人员)理解系统(5)组件在UML中的图示组件图由组件、接口和组件之间的联系构成,其中的组件可以是源程序代码、二进制代码或可执行程序。
组件的图示为一个大矩形左嵌两个小矩形,在框内标注组件名字。
如图:注意:1)在组件图中,组件是通用类型而非实例。
要显示组件实例,请使用部署图。
2)组件一般提供对某一接口的实现,如上右图所示。
2、组件类型(1)各种主要类型的组件1)配置组件配置组件是可执行系统的基础,它是一个可执行系统必须的组件。
如在J2EE系统中的各种*.xml配置文件、文挡等。
2)工作产品组件工作产品组件是在软件开发阶段使用的组件,是配置组件的来源。
如数据文件和数据库表、源程序文件等。
它们并不直接构成可执行系统,而是系统开发过程中的产品。
3)执行组件执行组件是可运行系统产生的运行结果,如DLL、*.exe、Jar包文件等COM+、JavaBeans、DLL、ActiveX等都是执行组件。
(2)在Rose中的几种特殊的组件3、组件的联系----组件之间可以有依赖联系(1)含义1)一个组件的模型元素使用另一个组件的模型元素;2)通过接口实现依赖联系。
JSP学习笔记Java相关课程系列笔记之十笔记内容说明JSP(程祖红老师主讲,占笔记内容100%);目录一、JSP基础 (1)1.1什么是JSP (1)1.2为什么要使用JSP (1)1.3 JSP与Servlet的关系 (1)1.4如何写一个JSP文件 (1)1.5 JSP是如何运行的 (1)1.6隐含对象 (2)1.7指令 (2)1.8 JSP注释 (3)1.9案例:创建emplist.jsp页面,将表示逻辑交给JSP处理 (3)二、JSP标签和EL表达式 (4)2.1什么是JSP标签 (4)2.2 JSTL及其使用 (4)2.3什么是EL表达式 (4)2.4 EL表达式的使用 (4)三、JSTL中的几个核心标签 (7)3.1 if (7)3.2 choose (7)3.3 forEach (7)3.4 url (8)3.5 set (8)3.6 remove (8)3.7 catch (8)3.8 import (8)3.9 redirect (8)3.10 out (8)3.11 JSP标签是如何运行的 (8)3.12案例:将员工列表中的Java代码改为JSP标签,并添加分页 (9)四、自定义标签 (10)4.1如何写一个自定义标签 (10)4.2 JavaEE5.0中,如何使用EL表达式和JSTL (10)4.3案例:自定义标签 (10)4.4案例:修改之前员工列表中的日期显示 (11)五、MVC (13)5.1什么是MVC (13)5.2使用MVC的目的 (13)5.3如何使用MVC来开发一个Web应用程序(JavaEE) (13)5.4 MVC的优缺点 (13)5.5案例:简易贷款(贷款数小于余额数*10) (13)5.6修改5.5案例,使用户无法直接访问view.jsp页面 (15)1一、JSP基础1.1什么是JSPJSP(Java Server Page)是Java服务器端动态页面技术。
目录1.1通过代码示例跟我学Apache Commons-Email邮件组件 (2)1.1.1Apache Commons-Email组件 (2)1.1.2应用Commons-Email组件实现在线发送邮件 (4)1.1.3采用同步方式实现邮件发送——但有延迟感 (7)1.1.4采用异步方式实现邮件发送——但需要应用观察者设计模式 (12)1.1通过代码示例跟我学Apache Commons-Email邮件组件在线发送和接收邮件目前是企业应用系统开发中的通用的功能要求——比如,在线投递通知和商业广告、激活账户、发送与用户注册有关的信息等。
作者在下面的章节中通过在银行账户信息管理系统中具体实现在线邮件发送的功能为示例,为读者介绍如何在项目开发中应用Commons-Email组件。
1.1.1Apache Commons-Email组件1、Apache Commons-Email 组件的主要功能(1)Sun的JavaMail在Java程序中也可以实现发送邮件等方面的功能,因为Sun公司在J2EE系统库中发布了一套JavaMail类库以帮助Java开发人员在项目开发中实现邮件发送和接收功能。
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。
它是Sun发布的用来处理email的API。
它可以方便地执行一些常用的邮件传输。
我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
(2)Commons组件Commons-Email 组件也是基于JavaMail API 而构建的一套系统库,它提供有在Java程序中操作邮件系统的一套API类库。
下图4.9所示是Apache 网站上对Commons-Email 组件的功能介绍和主要的功能类的作用说明文字的局部截图。
图4.9 Apache 网站上对Commons-Email 组件的功能介绍和主要的功能类的作用2、下载Commons-Email组件系统库文件读者可以在Apache的官方网站/email/中下载与邮件系统有关的Commons-Email组件的系统库文件commons-email-1.1.jar,并将该系统库文件添加到项目的classpath环境变量中(对于Web应用系统而言,同样也还是放在WEB-INF/lib目录中)——请见下图所示的操作结果状态的局部截图。
上机一 WEB 应用开发环境配置内容:搭建JSP工作环境,主要包括Java JDK的安装、Tomcat服务器的安装和构建班级论坛的第一个JSP的index.jsp首页面。
1. 安装JDK的步骤如下找到jdk-6-windows-i586.exe 运行安装程序,设定安装路径为D:\学习软件\jdk1.6.0, 其余接受默认安装。
安装结束后就要配置环境变量,包括java_home,path和classpath的设置,操作步骤如下:1)用鼠标右击“我的电脑”,选择“属性”,→“高级”→“环境变量”→“系统变量”→“新建”→在“变量名”输入框中写入“java_home”,在“变量值”输入框中写入“D:\学习软件\jdk1.6.0”→点击“确定”。
2)选中“系统变量”查看是否有classpath项目,如果没有就点击“新建”,→如果已经存在就选中classpath选项,→点击“编辑”按钮,→然后在“变量名”中填写“classpath”,→在“变量值”中填写“.;D:\学习软件\jdk1.6.0\lib;D:学习软件\jdk1.6.0\jre\lib”。
在“path”设定时,“变量名”输入框填写“path”,“变量值”输入框填写“D:\学习软件:\jdk1.6.0\bin”3)打开命令提示符窗口,输入命令“java -version”,看到Java版本的信息,确定安装完成。
2. 安装Tomcat6步骤如下将apache-tomcat-6.0.18.zip从磁盘中解压到D:\学习软件盘符下在D:\学习软件\apache-tomcat-6.0.18\bin目录下双击“startup.bat”启动服务器,双击“shutdown.bat”关闭服务器。
在环境变量中添加“变量名”为“tomcat_home”,“变量值”为“D:\学习软件\apache-tomcat-6.0.18”的设定。
在启动服务器后,打开浏览器,在地址栏输入http://localhost:8080查看,如出现主页,则表示安装成功。
JSP程序设计实验报告范文(6个)--2022实验一实验时间:2022年10月16日实验项目目的和任务(1).了解动态网站开发的相关技术。
(2).理解Servlet的运行原理及生命周期。
(3).掌握Servlet的编写及部署。
(4).掌握Servlet对表单数据的处理。
(5).掌握Servlet对HTTP请求报头的处理实验内容:完成实践1.D.1、实践1.D.2根据第一章所学内容以及上机实践情况,在实验报告中完成以下问题。
(1)编写用户登录页面,使用Servlet处理表单数据,当用户提交数据正确时显示“登录成功”,否则提示“登录失败。
在实验报告中给出Servlet的关键代码,并将实验结果粘贴与此。
(2)画图解释Servlet生命周期的几个阶段。
实验二实验时间:2022年10月23日实验项目目的和任务:(1).掌握会话跟踪的相关技术。
(2).理解Cookie的原理,掌握Cookie的使用方法。
(3).理解Seion的原理,理解Seion的生命周期,熟练掌握Seion的使用方法。
(4).理解ServletConte某t接口,掌握该接口中定义的方法。
实验内容:完成实践二Servlet会话跟踪中的实践2.G..1、实践2.G..2两个实验。
在实验报告中完成以下问题。
使用Seion完成如下功能:a)登录页面login.html中输入用户名和密码,都不能为空。
b)CheckServlet.java对用户名和密码进行验证,如果用户名为“admin”,密码为“1234”,则跳转到主页,否则显示错误提示。
c)MainServlet.java作为主页,显示当前用户名,同时显示SeionID、Seion的创建时间和时效,并提供一个“注销”的超链接。
d)DetroySeion.java对当前用户进行注销,销毁Seion对象。
在实验报告中给出CheckServlet.java,MainServlet.java,DetroySeion.java的完整代码,并在实验结果一栏中粘贴主页MainServlet.java的截图。
目录1.1通过代码示例跟我学J2EE JSP组件技术及应用实例(第4部分) (2)1.1.1体验JSP中的静态包含和动态包含之间的差别 (2)1.1.2体验JSP中的<jsp:useBean>的功能 (6)1.1.3体验JSP中的对象属性访问的动作标签的应用 (10)1.1.4体验JSP中的<jsp:forward>标签的用途 (13)1.1.5本章的课后作业 (16)1.1通过代码示例跟我学J2EE JSP组件技术及应用实例(第4部分)1.1.1体验JSP中的静态包含和动态包含之间的差别1、<jsp:include><jsp:include>动作元素用于在当前JSP页面中包含一个静态的或者动态的资源,运行效率略低于<%@include%>指令,但是可以动态增加内容,<jsp:include>动作元素格式如下。
<jsp:include page={"URL" | "<%= expression %>"} flush="true" />或者<jsp:include page={"URL" | "<%= expression %>"} flush="true"> <jsp:param name="paramName" value="paramValue" /> </jsp:include>其中:1)page={"URL" | "<%= expression %>"}为相对路径,或者代表相对路径的表达式。
2)flush="true"。
如果为true,缓冲区满时,将会被清空。
flush 的默认值为false。
2、将前面的authorInfo.jsp、navMenuBar.jsp和pageHead.jsp改变为独立的页面<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>页头</title><link href="/webcrm/css/commonStyle.css" rel="stylesheet" type="text/css" /></head><body><hr /><div id="pageFooter">版权所有:蓝梦网络信息资源中心,中国最优秀的J2EE平台开源社区,提供丰富的B2B 和B2C平台下的各种技术资料和在线服务<div id="footerCopyright"><A href="#" >北京ICP备0123456789号</A><A href="#" >网站统计</A><A href="#" >站长统计</A></div></div></body></html>注意在页面中正确地引用CSS文件。
3、在index.jsp中采用<jsp: include/>动作标签进行包含——当JSP页面被请求时引入指定文件<jsp:include page="/commonPage/pageHead.jsp" ></jsp:include><jsp:include page="/commonPage/navMenuBar.jsp" ></jsp:include>原来的页面完整的内容<jsp:include page="/commonPage/authorInfo.jsp" ></jsp:include>4、测试效果——http://127.0.0.1:8080/webcrm/index.jsp5、理解<jsp: include/>动作标签的包含是“结果的合并”而不是“内容的包含”其中出现有多个不同的独立页面的标签6、对其他的页面如userLogin.jsp 、userRegister.jsp也进行“包装”(1)userLogin.jsp页面的内容<jsp:include page="/commonPage/pageHead.jsp" ></jsp:include><jsp:include page="/commonPage/navMenuBar.jsp" ></jsp:include><%@ page pageEncoding="GB18030" %><%@ page import="java.util.Date" %><%@ page language="java" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>蓝梦集团CRM系统中的登录页面</title><link href="/webcrm/css/indexStyle.css" rel="stylesheet" type="text/css" /></head><body>蓝梦集团CRM系统中的登录页面,用户再在此加表单</body></html><jsp:include page="/commonPage/authorInfo.jsp" ></jsp:include>(2)执行后如果出现页面中的图片错误,可能是被包含文件中的图片等定位问题(3)正确地定位图片文件(4)用户注册页面内容7、其中的文件名也可以是由变量定义<%!String fileName="/userManage/HeHtml.jsp";%><jsp:include page="<%=fileName %>" />1.1.2体验JSP中的<jsp:useBean>的功能1、利用JavaBean实现可重用的Java代码(1)创建JavaBean组件的对象实例为了减少页面中的脚本的代码量,可以包装到JavaBean组件类中,而采用<jsp:useBean>动作标签创建它的对象实例,从而访问其中的方法。
<jsp:useBean>动作标签需要id 属性来定义该对象和class属性指定它的Java类名称,另一个是scope 属性——该对象在当前页面有效(scope="page")、为一个被请求的网页(scope="request")、会话期(scope="session")、或为整个Web应用程序(scope="application")等形式。
如果要使用一个已经创建好的Bean,那么这个ID的变量名必须与原来的ID变量名一致;如果目标Bean对象已经被创建出,<jsp:useBean>动作标签将不会被重复执行而导致重复地创建出Bean对象实例。
(2)正确地设置为session作用域对象如果Bean的scope属性定义为session,Bean实例作用于整个session生命周期。
但需要在创建该Bean的JSP文件中的<%@page%>指令中必须指定session=true,否则会导致致命错误发生。
此时可以在另一个页面中使用session对象访问该Bean,比如:session.getAttribute(name);2、创建标准(JDK)类的对象(1)采用new语句——声明标准的对象(JDK)<%!Date oneDate=new Date();public String getTodayDate(){return oneDate.toString();}%>采用脚本定义对象输出的现在的时间是:<%= getTodayDate() %><br>(2)采用动作标签<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <jsp:useBean id="otherDate" class="java.util.Date" scope="page" /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>修改用户信息</title></head><body>采用动作标签输出的现在的时间是:<%= otherDate.toString() %><br></body></html>测试一下:http://127.0.0.1:8080/webcrm/userManage/updateUserInfo.jsp(3)作用域解释1)application:服务器启动到停止的这段时间2)session:HTTP会发开始到结束的这段时间3)request:HTTP请求开始到结束的这段时间4)page:当前页面从打开到关闭这段时间3、也可以声明用户自己定义的类对象(1)在项目中添加一个类名称为UserInfoActionForm,包名称为com.px1987.webcrm.actionform类(2)添加下面的成员属性变量、并提供get/set方法String userName=null;String userPassWord=null;(3)最终的代码package com.px1987.webcrm.actionform;public class UserInfoActionForm {String userName=null;String userPassWord=null;public UserInfoActionForm() {}public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getUserPassWord() {return userPassWord;}public void setUserPassWord(String userPassWord) { erPassWord = userPassWord;}}(4)在页面中利用<jsp:useBean>标签创建该类的对象实例<jsp:useBean id="oneUserInfo" class="erInfoActionForm"scope="page" />等同于下面的效果<%erInfoActionForm oneUserInfo=new erInfoActionForm(); %>1.1.3体验JSP中的对象属性访问的动作标签的应用1、<jsp:setProperty>和<jsp:getProperty>标签(1)在页面中定义一个变量<%!String userNameString="yang";%>(2)采用脚本代码进行赋值操作<%!String userNameString="yang";%><%oneUserInfo.setUserName(userNameString);String userNameValue=oneUserInfo.getUserName();out.print("采用脚本语句输出的userName的值是:"+userNameValue+"<br>");%>(3)采用setProperty和getProperty动作标签——利用value属性,value可以是字符串,也可以是表达式。