北大青鸟JSP教程大全(上)_第1页
北大青鸟JSP教程大全(上)_第2页
北大青鸟JSP教程大全(上)_第3页
北大青鸟JSP教程大全(上)_第4页
北大青鸟JSP教程大全(上)_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章动态网站开发基础1课程地位PrevHTMLSQLBaseLogicJavaC#/WinFormsSTBProject1:ADO.Net+WinFormsC/SADO.Net/ThreeTierJavaScriptSQLAdvanceJavaOOPProject2:B/S.Net/OOPJSPAjax/WebServiceJSP/Servlet/JavaBean/WebServiceStruts/Hibernate/Spring/AjaxASP.NetNTCProject3:Net/JavaHR/CRM/OA/B2CB/S行业手册2相关课程回顾为什么说HTML是静态网页技术?为什么说JavaScript是一种客户端脚本语言?什么是多态?多态带给我们的好处是什么?3本门课程技能结构图4预习检查大家已经学会了HTML,为什么要学习JSP?B/S程序与C/S程序对比的优势有哪些?举例说明什么是URL?5本章任务完成一个新闻发布系统的静态网页原型,包括如下功能:后台管理模块(标题录入;文件上传)新闻前台显示模块(各级标题下的新闻显示)能够在Eclipse中部署运行该静态新闻发布系统

6掌握B/S开发的基本概念动态网页pk

静态网页B/S程序pkC/S程序B/S开发涉及的技术内容开发JSP动态网站的基本步骤掌握Web系统的工作目录创建Web工程与HTML、JavaScript文件实现Web工程的部署与运行进行Web系统的调试与排错本章目标7为什么需要动态网页静态网站有哪些局限性?要完成这一切,我们需要使用动态网页1、无法实现搜索、登录、购买等交互功能2、无法对静态页面的内容在线更新8什么是动态网页生活中的动态网页可以根据不同的输入,返回不同的网页,这就是动态网页9怎样实现动态网页

Google如何保存业务数据?

Google如何实现业务数据的动态展示?要掌握这一切,我们首先需要了解B/S技术10为什么学习B/S技术C/S的局限性中心局域网特定用户群中资源共享B/S带给我们的全新体验数据库服务器学生机1学生机2学生机n需要安装客户端软件Google服务器Internet全球用户群中资源共享美国用户中国用户数据库服务器无需安装客户端软件11什么是B/S技术B/S是浏览器端/服务器端,程序完全放在服务器上,不用在浏览器上安装任何文件,它是基于Internet的产物应用服务器数据库服务器IENetscapeIEInternet在应用服务器中布署运行程序12B/S技术特点B/S中浏览器端与服务器端采用请求/响应模式进行交互应用服务器数据库服务器IEIE解释执行HTML文件从服务器端检索到的信息返回响应客户端的请求信息发送请求访问数据库返回结果运行JSP等服务器端脚本程序1用户输入23413B/S开发涉及的技术内容HTMLJavaScript使用Java语言理解程序逻辑B/S开发将涉及S1、S2、Y2所学的诸多课程数据库第一学期第二学期开发基于Struts/Spring/Hibernate/Ajax的网上信息发布平台开发基于JSP/Servlet/JavaBean的网上交易系统第二学年使用JSP开发Web应用系统使用Java实现面向对象编程14小结1静态网页与动态网页的主要区别?是否可以这样说:动态网页是静态网页的替代品?B/S程序与C/S程序相比,有哪些优势和劣势?15开发JSP动态网站的步骤1、创建一个Web项目2、设计Web项目的目录结构3、编写Web项目的代码4、部署Web项目5、运行Web项目16创建一个Web项目1在菜单栏选择:文件新建项目2在弹出的窗口中选择:MyEclipse

J2EEProjects

WebProject3输入Web项目名称(设置为news),以及其余相关信息演示:创建一个Web项目17设计Web项目的目录结构WEB-INF:该目录中内容不能对外发布web.xml:Web应用的初始化配置文件lib文件夹:存放以jar/zip形式表现的库文件META-INF:系统自动生成,存放系统描述信息WebRoot:Web应用的根目录src文件夹:存放Java源文件静态文件(包括图片、样式表、HTML等)存放在Web应用的根目录下,一般按功能以文件夹形式分类18编写Web项目的代码

右键点击WebRoot

新建HTML:创建一个新的HTML文件在弹出的窗口中,选择文件路径、输入文件名称填充HTML文件内容演示:编写Web项目的代码12319部署Web项目窗口首选项MyEclipseApplicationServerTomcat5:配置Tomcat点击部署图标

为Web项目添加web服务器选择Tomcat5部署完成演示:部署Web项目1220运行Web项目点击运行图标

运行Tomcat5Tomcat5启动服务,在控制台输出启动信息开启IE窗口输入正确的URL观看运行结果演示:运行Web项目12321什么是URLURL:UniformResourceLocator即统一资源定位系统,就是我们通常所说的网址URL是惟一能够识别Internet上具体的计算机、目录或文件位置的命名约定URL的组成:http://localhost:8080/news/index.html协议主机IP地址(有时包括端口号)主机资源的具体地址存放HTML文件的实际物理目录在运行环境中,该路径对应WebRoot文件夹22小结2请说明在Eclipse环境中,开发JSP动态网站的具体步骤在index.html中有这样一行代码:

点击该超链后可进入welcome.html网页中请问:/sports/welcome.html是URL吗?并说明原因<ahref="/sports/welcome.html">奥运展播</a>

23Web程序的调试与排错在运行Web程序时,我们常犯的一些错误有:未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务未部署Web应用,就试图运行Web程序运行时,URL输入错误存放文件的目录无法对外引用,如:文件放入了WEB-INF、META-INF等文件夹24错误1:未启动Tomcat排除错误:启动Tomcat服务如果在控制台上显示Tomcat服务已启动,观察端口号是否与预期端口号一致,按照实际端口号重新运行错误现象排错方法:检查Tomcat服务能否正确运行12325错误2:未部署Web应用排除错误:部署Web应用排错方法:检查Web应用是否正确部署尚未部署错误现象12326错误3:URL输入错误排除错误:使用正确的URL错误现象排错方法:检查URLhttp://localhost:8080/news/index.html文件名称与路径要写对查看菜单:项目属性MyEclipseWebWebContext-root协议主机IP地址12327错误4:目录不能被引用排除错误:把index.html文件拖至WebRoot文件夹下错误现象排错方法:检查文件的存放位置META-INF,WEB-INF文件夹下的内容无法对外发布12328小结3运行你的web程序时,如果浏览器提示404错误,可能的原因有哪些?判断tomcat是否启动,或者是否在你预期的端口启动,最简单的方法是什么?29总结在开发Web应用程序时,静态文件一般存放在什么位置?以下哪些是正确的URL?1、/talk/talk1.htm2、file://3、/pub/files/foobar.txt4、5、:806、/news/welcome.html30Thankyou31第二章用集合存储对象32回顾什么是异常?Java中,如何进行异常处理?请说明throw与throws的区别与联系?33预习检查List、Map是否都继承自Collection接口?请说明集合类ArrayList与HashMap的区别?34本章任务开发一套小型的新闻管理系统,完成如下功能:使用集合类存储新闻标题可以对新闻标题进行增、删、改、查使用英文名称关联不同的Accp学员,并实现对学员的增、删、改、查操作35掌握Java集合框架的常用接口掌握常用集合类:ArrayList、LinkedList、HashMap本章目标36为什么需要集合框架学员1学员20如何存储每天的新闻信息?如何存储ACCP课程的代码与课程信息,能够通过代码方便地获得课程信息?如果写程序时并不知道程序运行时会需要多少对象,或者,需要更复杂的方式存储对象——那么,可以使用Java集合框架,来解决这类问题一维数组代码1……代码N课程1……课程N一一对应新闻1……新闻N每天的新闻总数不确定,显然无法再使用数组保存存储一个班的学员信息,假定一个班容纳20名学员37Java集合框架包含的内容1接口CollectionListMap2具体类ListArrayListLinkedListMapHashMap3算法Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中Collections提供了对集合进行排序、遍历等多种算法实现采用键-值对的存储方式,长度可动态改变采用线性列表的存储方式,长度可动态改变38List接口和ArrayList类5-1开发一套小型的新闻管理系统,要求如下:可以存储各类新闻标题(包含ID、名称、创建者、创建时间)可以获取新闻标题的总数可以逐条打印每条新闻标题的名称存储方式如何选择?元素个数不确定使用集合类需要遍历元素存储对象如何确定?类型:新闻标题属性:ID、名称、创建者、创建时间39List接口和ArrayList类5-2第一步,确定存储方式1、ArrayList类是List接口的一个具体实现类2、ArrayList

对象实现了可变大小的数组3、随机访问和遍历元素时,它提供更好的性能元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10当元素个数增加为11个0129345786元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10元素11创建了一个新的数组,把原数组中元素复制进来012934578610根据下标位置访问元素40List接口和ArrayList类5-3第二步:确定存储对象1、创建类型:新闻标题2、包含属性:ID、名称、创建者、创建时间publicclassFirstLevelTitle{privateintid;//IDprivateStringtitleName;//名称privateStringcreater;//创建者privateDatecreateTime;//创建时间publicFirstLevelTitle(intid,StringtitleName,Stringcreater,Date

createTime){this.id=id;this.titleName=titleName;this.creater=creater;this.createTime=createTime;}publicStringgetTitleName(){ returntitleName;}publicvoidsetTitleName(String

titleName){

this.titleName=titleName;}}41List接口和ArrayList类5-4第三步:具体实现1、按照顺序依次添加各类新闻标题2、获取新闻标题的总数3、根据位置获取相应新闻标题4、逐条打印每条新闻标题的名称publicclassFirstLevelTitleDB1{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","管理员",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理员",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test); System.out.println("新闻标题数目为:"+newsTitleList.size()+"条");print(newsTitleList);}publicstaticvoidprint(List

newsList){for(inti=0;i<newsList.size();i++){FirstLevelTitletitle=(FirstLevelTitle)newsList.get(i);System.out.println(i+1+":"+title.getTitleName());}}}123顺序添加,位置从0开始新闻标题数目为:2条1:汽车2:高考控制台输出4从集合中取出后为Object类型,需要进行强制类型转换42List接口和ArrayList类5-5第三步:具体实现1、在指定的位置添加新闻标题2、判断是否已经存储了某条新闻标题3、删除指定位置处的某一新闻标题publicclassFirstLevelTitleDB2{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","网站管理员",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","网站管理员",newDate());FirstLevelTitlehouse=newFirstLevelTitle(3,"房产","网站管理员",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test);newsTitleList.add(2,house);if(newsTitleList.contains(test)){

System.out.println("有高考的新闻");}else{

System.out.println("没有高考的新闻");}newsTitleList.remove(1);System.out.println("新闻标题数目为:"+newsTitleList.size()+"条");}}123在指定的位置添加元素有高考的新闻新闻标题数目为:2条控制台输出43小结1创建一个类Cat

包含属性name,在构造方法中进行初始化添加一个方法show(),用以打印name属性的值创建一个类CatTest,添加main方法,实现创建一个ArrayList,向其中添加几个Cat对象遍历该集合,并且对每个Cat对象调用show()方法完整代码实现44List接口和LinkedList类3-1升级这套小型的新闻管理系统,要求如下:可以添加头条新闻标题可以删除末条新闻标题存储方式如何选择?元素个数不确定使用集合类需要在列表的头或尾添加、删除元素45List接口和LinkedList类3-2第一步,确定存储方式1、LinkedList类是List接口的一个具体实现类2、LinkedList

类用于创建链表数据结构3、插入或者删除元素时,它提供更好的性能46List接口和LinkedList类3-3第二步:具体实现1、添加头条、以及最末条新闻标题2、获取头条、以及最末条新闻标题3、删除头条、以及最末条新闻标题publicclassFirstLevelTitleDB3{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","管理员",newDate());FirstLevelTitlemedical=newFirstLevelTitle(2,"医学","管理员",newDate());LinkedList

newsTitleList=newLinkedList();newsTitleList.addFirst(car);newsTitleList.addLast(medical);FirstLevelTitlefirst=(FirstLevelTitle)newsTitleList.getFirst();System.out.println("头条的新闻标题为:"+first.getTitleName());FirstLevelTitlelast=(FirstLevelTitle)newsTitleList.getLast();System.out.println("排在最后的新闻标题为:"+last.getTitleName());newsTitleList.removeFirst();newsTitleList.removeLast();}}12347小结2创建一个类Stack,代表堆栈(其特点为:后进先出),添加方法add(Object

obj)、以及get(),添加main方法进行验证,要求:使用LinkedList实现堆栈在向LinkedList中添加时,使用addLast方法在从LinkedList中取出时,使用removeLast方法完整代码实现48Map接口和HashMap类4-1Accp学员应聘至外企工作,每个学员都会有一个英文名称,对应该学员对象Jack西苑中心毕业的李明Rose西苑中心毕业的刘丽现在希望通过英文名称,获得该学员对象的详细信息,如何实现?存储方式如何选择?元素个数不确定使用集合类通过key(英文名称)获得value(学员对象)存储对象如何确定?类型:Accp学员属性:中心名称、姓名49Map接口和HashMap类4-2第一步,确定存储方式1、Map接口用于维护“键-值对”的关联性,可以通过键查找值2、HashMap是Map接口的一个具体实现类50Map接口和HashMap类4-3第二步:确定存储对象1、创建类型:Accp学员2、包含属性:中心名称、姓名publicclassAccpStudent{privateStringname;//学员姓名privateStringschool;//中心名称publicAccpStudent(Stringname,Stringschool){=name;this.school=school;}publicStringtoString(){ returnschool+"毕业的"+name;}}重写Object的toString()方法,用于输出调试和描述信息51Map接口和HashMap类4-4第三步:具体实现1、把英文名称与学员对象按照“键-值对”的方式存储在HashMap中2、分别打印键集、值集、以及键-值对集合3、判断是否存在某个键,如果是,则根据键获取相应的值4、根据键、删除某条记录publicclassMapTest{publicstaticvoidmain(String[]args){

AccpStudentstudent1=newAccpStudent("李明","北京中心");

AccpStudentstudent2=newAccpStudent("刘丽","天津中心");Mapstudents=newHashMap();

students.put("Jack",student1);

students.put("Rose",student2);

System.out.println("键集:"+students.keySet());

System.out.println("值集:"+students.values());

System.out.println("键-值对集合:"+students);Stringkey="Jack";

if(students.containsKey(key))

System.out.println(students.get(key));

students.remove(key);

System.out.println("键-值对集合:"+students);}}123键集:[Jack,Rose]值集:[北京中心毕业的李明,天津中心毕业的刘丽]键-值对集合:{Jack=北京中心毕业的李明,Rose=天津中心毕业的刘丽}北京中心毕业的李明键-值对集合:{Rose=天津中心毕业的刘丽}控制台输出452小结3创建一个类Book

包含属性:title(标题),使用构造方法进行初始化重写toString()方法,用以返回Title属性的值创建一个类BookTest,添加main方法,要求:

使用HashMap进行存储,键为Book对象的编号,值为Book对象通过某一个编号获取Book对象,并打印该Book对象的标题完整代码实现53使用集合框架注意事项ObjectObjectObject加入集合从集合中取出(Rabbit)object(Car)object(Student)objectRabbitCarStudentRabbitCarStudent任何对象加入集合类后,自动转变为Object类型;取出时,需要进行强制类型转换,恢复为特定的类型54总结2-1请给出下面Java代码的运行结果importJava.util.*;publicclassTestMap{publicstaticvoidmain(String[]args){

AccpStudentstudent1=newAccpStudent("李明","西苑中心");

AccpStudentstudent2=newAccpStudent("刘丽","西苑中心");

AccpStudentstudent3=newAccpStudent("张娜","马甸中心");

AccpStudentstudent4=student1;Mapstudents=newHashMap();

students.put("Jack",student1);

students.put("Rose",student2);

students.put("Mary",student3);

students.put("Rose",student4);

System.out.println("键集:"+students.keySet());

System.out.println("值集:"+students.values());}}键集:[Jack,Mary,Rose]值集:[西苑中心毕业的李明,马甸中心毕业的张娜,西苑中心毕业的李明]55总结2-2publicclassFirstLevelTitleDB{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽车","管理员",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理员",newDate());ListnewsTitleList=newArrayList();newsTitleList.put(car);newsTitleList.put(test); p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论