JavaWeb实习报告
武汉工程大学计算机科学与工程学院生产实习报告
JavaWeb实习报告
一、实习目的与任务
为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作的意识,了解软件开发的过程和基本流程,以便于帮助我们能够在大四毕业时可找到一份客观的工作,我们在大四刚开学就开始了生产实习。
这次实习的主要任务是JavaWeb软件开发,学习Java开发中比较典型且经常用到的几个知识,其中包括Jsp、Servlet、Html、JDBC等等,另外,Java开发中也必须要用到数据库,因此实习中还加入了Mysql数据库的学习。掌握了这些基本知识之后,就开始真正的项目开发,而且此次我们所要开发的项目是有关博客页面的项目,并完成老师指定的功能。
二、实习地点
重庆足下科技有限公司
三、实习内容和要求
我们这次实习,在校外也就是软帝公司总共是十天,开始几天基本上是每天学习一个方面的内容,大概学习了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下几天就是项目时间,做出一个博客开发的项目。大致内容如下:
一、Java语言简介
Java语言Java是由Sun微系统公司所发展出来的程序语言,它是一种面向地向的语言,Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的代码,而是产生一种中间码叫作ByteCode,这种代码必需在透过Java的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。
Java写出来的程序可分为两类,分别是JavaApplet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。
Applets类似于应用程序,但是它们不能单独运行,Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。
Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以进行网页开发,其中包括静态语言开发与动态网页开发,可以在网页中加入各式各样的动态效果,可以放上一段动画,加入声音,也可以建立交互式网页等。
二、Html语言
Html是超文本标记语言,它是一种非严格的标记语言,它是web开发的基础,也是制作网页的基础,纯html的页面是静态的。
Html它由head和body两部分组成,所写的内容一般都是放在body中,其中可以添加Form表单域,其中属性Action表示提交的动作,也就是提交到那个页面,可表示为Action=“”;Method属性表示提交的方法,一般为设为post;在Form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan
武汉工程大学计算机科学与工程学院生产实习报告
等等,当然,有表就会有行和列,其中行用tr表示,列用td表示,行与列的属性值与table差不多。
在行与列中还可以添加一些按钮,链接等等,添加按钮是用表示,添加链接则用来添加,另外,还有一个比较有用的标签,可以画出一个框,里面可以添加所需要的东西。
运用Html我们开发了一个e-mail邮件发送系统,这个界面主要用到了七个htm文件,有主页面main.html,其中主页面分为上部、左部和右部,分别用top.html、left.html、right.html文件来表示。另外还增加了登录页面(login.html)、注册页面(regist.html)以及书写邮件的页面(write.html),由这些html文件共同实现了e-mail的基本界面。
首先进入login登录界面,输入用户名和密码,而且用户名和密码有一定的限制,输入信息符合要求后方可进入主页面,另外,在登录界面的用户名后还有一个超链接“注册”,点击“注册”就可以进入注册的页面,注册页面上有五行,包括用户名、密码、重复密码以及上传头像,另外还有两个按钮“提交注册”和“重置”,这样即可完成注册。
登陆界面中还用到了JavaScript,用以给出用户名和密码的限制条件,其中有一个function方法,用到的代码如下:
functioncheckInfo(){varname=document.getElementById("username").value;varpass=document.getElementById("pass").value;if(name==""){alert("请输入用户名!");returnfalse;}else{if(pass==""){alert("请输入密码!");returnfalse;}else{returntrue;}}}
以后若要用到限制条件,都是运用与此类似的方法,这段代码可以说是一个模板。进入到主页面后,可以看到三个部分,左边的部分用链接列出几项,包括“写信”、“收信”、“联系人”、“百度”等,右边显示好友上传图片,顶部是背景图片。点击左边的写信,跳转到write页面,可以写邮件。右边的现实的图片可以进行查看,与空间显示的图片差不多,也是可以由小图片转换成大图片。当鼠标点击到小图标X上时,图标就亮了,鼠标
拿走,图标就暗了,
另外,我们运用Html还设计了一个hao123页面,页面中用到了text文本框、超链接、行列的布置,图片的加载等等,做出来之后,整体感觉与hao123本来的页面基本差不多。
三、Mysql数据库
Mysql是一种小型的数据库,它与Java的联系十分密切,MySQL是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了Mysql作为网站数据库,因此,网页编写大多数都是用Mysql。
-2-
武汉工程大学计算机科学与工程学院生产实习报告
Mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。Mysql的Sql指得是“结构化查询语言”,Sql是用于访问数据库的最常用标准化语言。同时,Mysql软件也是一种“开放源码”的软件,意味着任何人都能使用和改变软件。任何人都能从Internet下载Mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。Mysql软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。
Mysql服务器还有一套实用的特性集合,在基准测试主页上,给出了Mysql服务器和其他数据库管理器的比较结果。Mysql支持多种连接,包括TCP/IP、ODBC和JDBC等多种数据库连接途径,而我们此次实习用到的是JDBC数据库连接方法,这一点在下面会讲到。
此次实习我们主要学习了如何在Mysql数据库中建立表格,如何执行Sql语句等等。首先,打开Mysql编写框,执行语句showdatabases,即可查看Mysql中有哪些数据库,运用create+数据库名语句可建立想要的数据库,运用use+数据库名即可进入对应的数据库。
进入数据库之后,就可以执行数据库中的增、删、查、改等Sql语句了,运用createtable+表名(表中所需要的元素),这样就可以建立一张表了,运用desc+表名就可以查看表,运用Sql语句“select*from+表名”就可以查看表中的所有数据,运用“insertinto”语句可以向表中添加数据;运用“update+表setWhere”可以更改表中指定的某项数据;运用“delete+表where”语句可以删除表中的某项数据
四、JDBC数据库连接
Java中的JDBC,JDBC是JavaDataBaseConnectivity的缩写,是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
连接数据库的方法有一个模板,代码如下:publicclassDBManager{privatestaticfinalStringURL="jdbc:mysql://localhost:3306/test";privatestaticfinalStringUSER="root";privatestaticfinalStringPASSWORD="123";privatestaticConnectionconn=null;publicstaticConnectiongetConn(){try{if(conn==null){//注册驱动Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(URL,USER,PASSWORD);}}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}
returnconn;}}
以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据
-3-
武汉工程大学计算机科学与工程学院生产实习报告
库时都可以直接对其进行调用。
通过JDBC我们可以连接到所用的数据库mysql,可以从数据库中提取数据,也可以将所写数据存入数据库,用JDBC连接数据库都是一个模式,基本上都是按照一个套路在写,运用JDBC以及MyEclipse工具,我们也做出了一个小型的系统。
系统具有添加、查询、删除、修改、退出系统等功能,添加功能可以控制台中所写的信息添加到数据库中,查询信息则是根据id号从数据库中查询信息并将信息显示出来,增加、删除亦是如此,要做出这些功能首先都必须先连接到数据库,这就要用到JDBC技术,还要用到Connection方法,首先加载mysql数据库的驱动,然后在创建连接,连接时要提供所用计算机的IP地址和端口号,以及mysql数据库数据库的用户名和密码。
连接好数据库后,再根据所需要的功能编写出对应的方法,不同方法对应不同的sql语句,例如添加信息(add)中用insert语句,删除用delete语句,修改用update语句等等,然后主函数中提供对功能的选择,不同的编号对应不同的功能,并且根据所选的功能调用的方法。
五、JSP
JSP是JavaServerPages的缩写,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(JavaScript)和JSP标记(tag),从而形成JSP文件(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP页面通常被编译成为JavaServlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个JavaServlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应。
我们所做的学生信息管理系统也需要用到Mysql数据库和JDBC技术,所做的系统同样可以添加、修改、查询和删除学生信息,不过这些功能是运用不同的页面显示,点击不同的按钮即可跳转到所需的页面,而后获得想要的信息。每个功能都建立一个JSP页面,其中主页面是Index.jsp,在这个页面中有两个链接,分别转到增加信息和浏览信息页面,浏览信息页面中还包括了对信息的修改和删除。
例如,系统中浏览学生信息的页面的代码如下:
学号姓名性别年龄专业操作
${stu.sno}${stu.sname}
-4-
武汉工程大学计算机科学与工程学院生产实习报告
${stu.sex}${stu.age}${stu.major}
删除修改
另外还用到了两个Java类StuDAO和StuDTO,这两个类中用到JDBC技术,它们分别用以从数据库中读取数据和将数据存入到数据库中。这两个类中有很多方法,通过调用这些方法即可实现学生信息管理系统中的增、查、删、改等功能!
六、Servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。举例如下:
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{//1、获取id
Stringsid=request.getParameter("id");intid=Integer.parseInt(sid);//2、根据id查询到对应的学生信息StuDAOsdao=newStuDAO();
StuDTOstu=sdao.queryStu(id);
//3、将stu传递到studentModify.jsp页面显示request.setAttribute("stu",stu);
request.getRequestDispatcher("studentModify.jsp").forward(request,response);
我们同样是以学习建立学生信息管理系统为例来学习Servlet的,Servlet与JSP差不多,最主要的差别是JSP是实现普通静态HTML和动态HTML混合编码的技术,Servlet则是web页面和服务器之间的连接物,而这基本上没什么区别。
在编写学生信息管理系统的时候,只不过在昨天编写的基础上,将某些JSP文件运用Servlet表示,像那些只做显示用的JSP页面不做变化,而中间有调用StuDAO中的方法的JSP页面,它们不做显示用,而是要与数据库联系起来,像这些JSP页面就可以转换成相应的Servlet,其中的代码与JSP中的几乎一样,这样处理之后,减少了页面,不过功能没有变化,更加方便了!
四、实习总结及分析
这次实习主要是学习JavaWeb开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。
首先是JSP,它是JavaWeb开发的基础,需要的页面都是用JSP来建立的,它是一种
-5-
武汉工程大学计算机科学与工程学院生产实习报告
动态的网页技术,其中,可以显示动态画面以及动画效果,在其中也可以编写Java代码,也可以加入html编写语言,通过form表单中的action属性可以实现页面间的跳转,点击不同的按钮,可以跳转到相应的页面,它是JavaWeb编程中必不可少的部分,Java语言开发的任何项目都要用到它;
其次是Servlet,它也是JavaWeb开发中必不可少的部分,Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。
再次,是HTML语言,它也是必不可少的,经常是嵌入在JSP中运用,它是一种静态页面开发技术,其中用的最多的是运用HTML语言建立form表单,其中有行(tr)和列(td),另外它的标签也用的比较多,主要是利用它可以在页面上任意移动,而且它的大小不会改变,还可以隐藏、变透明等等,再有就是其中的JavaScript用的也比较多,主要是写一些function方法,用来限制一些信息;
最后,其他几个方面也非常重要,像JDBC用于应用程序和数据库的连接,没有这个方法就无法和数据库连接起来,所以十分重要;Mysql数据库也是Java项目开发中用到最多的一种数据库,没有数据库就无法实现信息的增、删、查、改,所以这些都是必不可少的。
五、实习体会
实习就这样在不知不觉中就结束了,这次实习我们学到了很多知识,Java中的HTML、JSP、Servlet、JDBC等等,虽然这些知识我并没有学得很精通、深邃,也只是掌握了一点皮毛而已,不过对于JAVA我们还是有了更深刻的了解,知道了Java的博大精深,此外我还学到了另外一种数据库,Mysql数据库,这是一个小型数据库,与以前的SQLServer有相同也有不同,同时还学会了如何运用MyEclipse开发工具等等。
同时也学到了项目开发的思考角度和基本流程,提高了我们分析和解决问题的能力,锻炼了我们实际动手操作能力,为以后的工作打下了坚实的基础。
实习就快结束了,在此我要特别感谢几位老师,,首先是带领我们实习的刘黎志老师,对我们尽心尽力,经常到实习基地监督指导我们,感谢老师对于我们的关心和照顾;其次,就是要感谢带领我们进行第一阶段学习的软帝指导老师杨涛老师,他细心的教授我们知识,对没听懂的同学一一辅导,在他的讲解下我们学到了很多基础知识;最后要感谢带领我们做项目的马文成老师,他的耐心讲解让我们感受到了做项目的乐趣,哪位同学有错误他就会一一帮助修改,真的非常感谢他们!
扩展阅读:javaWeb实习报告
武汉理工大学华夏学院毕业实训报告实训题目java软件开发系别:信息工程系专业:计算机应用学号:10225507214姓名:曾令平指导教师:黄启荃提交日期:201*年5月30日武汉理工大学华夏学院计算机教研室制1、实习题目:java软件开发2、实习目的:本人由于在达内实训时,各项成绩优异,被北京木联能科技有限公司录用为java软件开发实习生,作为即将步入社会的应届毕业生,我带着无比激动的心情和远大的理想,到北京木联能科技有限公司实习,实习目的如下:进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。3、实习时间:201*年3月15号201*年6月6号4、实习地点:武汉达内科技有限公司5、实习单位简介武汉达内科技有限公司(以下简称“公司”)位于武汉东湖开发区关山一路20号中国光谷创意产业基地2号楼4层。公司长期致力于培养IT精英,近年来成功的培养了无数的人才,公司师资都是工作相当有经验的讲师主讲。达内IT培训集团是中国高端IT培训行业领导品牌,致力于培养Java、C++、C#/.Net等方面的中高端软件人才。由美国国际数据集团IDGVCPartners和集富亚洲JAFCOASIA投资,是国内首家获得国际风险投资的IT培训机构,201*-201*连续3年入选德勤“高科技高成长中国50强、亚太地区500强”。达内IT培训集团是Java之父Sun公司在中国境内最大的Java培训合作伙伴、中关村科技园区管委会指定的“软件人才培养示范基地”,是中国“先就业后付款”IT培训模式的创始者。经过7年运营,达内IT培训集团在大学生IT就业培训领域积累了丰富的专业经验与就业资源。以中关村科技园区为依托,达内在中国软件业发达城市北京、上海、广州、深圳、大连、南京、武汉、杭州、西安、苏州、成都、太原等20多个城市,建立了近30家培训中心,拥有2万多平米的培训场地,在校生规模达5000人。已累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、联想、神州数码、大唐电信、亚信等知名IT企业培养输送5万多名中高级软件人才,跨越电信、金融、电子政务(商务)、电力、通讯、搜索、欧美外包及对日外包等十数个行业。目前,达内集团拥有500多名员工,年产值接近2亿元,运营规模已远远超出其它同类机构。6、实习内容6.1.公司采用的编程语言-java语言Java是由Sun微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented)的程序语言。Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作ByteCode,这种码必需在透过Java的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。Java写出来的程序可分为两类,分别是JavaApplet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。Applets类似于应用程序,但是它们不能单独运行,Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以在网页中加入各式各样的动态效果。可以放上一段动画,加入声音,也可以建立交互式网页等。6.2.Java中的常用设计模式6.2.1工厂模式客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。6.2.2建造模式将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。6.2.3工厂方法模式核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。6.2.4原始模型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。6.2.5单例模式单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。6.3.公司使用的数据库-MySql数据库6.3.1MySQL数据库管理系统概述MySQL是最流行的开放源码SQL数据库管理系统,它是由MySQLAB公司开发、发布并支持的。MySQLAB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISOSQL标准定义的。SQL标准自1986年以来不断演化发展,有数种版本。在本手册中,“SQL-92”指得是1992年发布的标准,“SQL:1999”指得是1999年发布的标准,“SQL:201*”指得是标准的当前版本。我们采用术语“SQL标准”标示SQL标准的当前版本。“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。MySQL软件采用了GPL(GNU通用公共许可证),,定义了在不同情况下可以用软件作的事和不可作的事。MySQL服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。MySQL服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管MySQL始终在不断发展,但目前MySQL服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的MySQL十分适合于访问Internet上的数据库。6.3.2MySQL的历史我们最初的出发点是,使用mSQL来连接我们的表,这类表采用了我们的快速低层面(ISAM)子程序。然而,经过一些测试后,我们得出结论,mSQL的速度或灵活性不足以满足我们的要求。其结果是,为我们的数据库提供了新的SQL接口,但API接口与mSQL的几乎一样。设计该API的目的在于,允许将为mSQL编写的第三方代码方便地移植到MySQL。MySQL名称的起源不明。10多年来,我们的基本目录以及大量库和工具均采用了前缀“my”。不过,共同创办人MontyWidenius的女儿名字也叫“My”。时至今日,MySQL名称的起源仍是一个迷,即使对我们也一样。MySQLDolphin的名称为“Sakila”,它是由MySQLAB公司的创办人从用户在“Dolphin命名”比赛中提供的众多建议中选定的。该名称是由来自非洲斯威士兰的开放源码软件开发人AmbroseTwebaze提出的。根据Ambrose的说法,按斯威士兰的本地语言,女性化名称Sakila源自SiSwati。Sakila也是坦桑尼亚、Arusha地区的一个镇的镇名,靠近Ambrose的母国乌干达。6.3.3MySQL稳定性最初的代码可回溯至20世纪80年代初。它提供了稳定的编码基数,最初存储引擎使用的ISAM表格式仍保持向后兼容性。在MySQLAB公司的前身TcX,自1996年中期以来,MySQL代码在多个项目中工作良好,未出现任何问题。当MySQL数据库软件首次向更广泛的公众发布时,我们的用户很快发现了一些未经测试的代码段。自那以后,尽管每个新版本具有很多新的特性,但每次新发布的版本均存在少量的移植性问题。每次发布的MySQL服务器均是可用的。仅当用户尝试源自“灰色区域”的代码时才会出现问题。当然,新用户不了解“灰色区域”是什么。因此,在本节中,我们介绍了目前已知的这类区域。本节所作的介绍主要针对MySQL服务器3.23版和更高版本。在最新的版本中,更正了所有已知和通报的缺陷,但“缺陷”一节所列的除外,这类缺陷与设计有关。MySQL服务器采用了多层设计和独立模块。在此列出了一些较新的模块,并指明了它们的测试情况。6.3.4MySQL表最大能达到多少MySQL3.22限制的表大小为4GB。由于在MySQL3.23中使用了MyISAM存储引擎,最大表尺寸增加到了65536TB(25671字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。在下面的表格中,列出了一些关于操作系统文件大小限制的示例。这仅是初步指南,并不是最终的。操作系统Linux2.2-Intel32-bitLinux2.4+Solaris9/10NetWarew/NSSfilesystemwin32w/FAT/FAT32win32w/NTFSMacOSXw/HFS+文件大小限制2GB(LFS:4GB)(usingext3filesystem)4TB16TB8TB2GB/4GB2TB(可能更大)2TB在Linux2.2平台下,通过使用对ext2文件系统的大文件支持(LFS)补丁,可以获得超过2GB的MyISAM表。在Linux2.4平台下,存在针对ReiserFS的补丁,可支持大文件(高达2TB)。目前发布的大多数Linux版本均基于2.4内核,包含所有所需的LFS补丁。使用JFS和XFS,petabyte(千兆兆)和更大的文件也能在Linux上实现。然而,最大可用的文件容量仍取决于多项因素,其中之一就是用于存储MySQL表的文件系统。另外,Windows用户请注意:FAT和VFAT(FAT32)不适合MySQL的生产使用。应使用NTFS。在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOWTABLESTATUS语句或myisamchk-dvtbl_name检查表的最大尺寸。如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATETABLE语句。创建了表后,也可以使用ALTERTABLE更改这些选项,以增加表的最大允许容量。处理MyISAM表文件大小的其他方式:如果你的大表是只读的,可使用myisampack压缩它。myisampack通常能将表压缩至少50%,因而,从结果上看,可获得更大的表。此外,myisampack还能将多个表合并为1个表。MySQL包含一个允许处理MyISAM表集合的MERGE库,这类MyISAM表具有与单个MERGE表相同的结构。6.3.5java与SQL的应用Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(JavaDatabaseConnectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQLServer201*、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。SQLServer201*是微软公司新一代的数据库产品,它是在SQLServer7.0建立的坚固基础上产生的,并对SQLServer7.0做了大量扩展。SQLServer201*通过高端硬件平台以及最新网络和存储技术的支持,可为最大的Web站点和企业级应用提供可扩展性和高可靠性。Java通过JDBC、ODBC接口访问数据库。6.3.6JDBC、ODBC接口Java应用程序通过JDBCAPI(java.sql)与数据库连接,而实际的动作则是由JDBC驱动程序管理器(JDBCDriverManager)通过JDBC驱动程序与数据库系统进行连接。ODBC(OpenDataBaseConnectivity)即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的API;可以使应用程序通过API访问任何提供了ODBC驱动程序的数据库,而目前所有的关系数据库都提供了ODBC驱动程序,所以ODBC已经成为数据库访问的业界标准,并得到了广泛应用。JDBC-ODBC桥是一种JDBC驱动程序,它通过将JDBC操作转换为ODBC操作来实现的。利用JDBC-ODBC桥可以使程序开发人员不需要学习更多的知识就可以编写JDBC应用程序,并能够充分利用现有的ODBC数据源。JDBC-ODBC桥驱动程序可以使JDBC能够访问几乎所有类型的数据库。7.Servlet技术7.1什么是Servlet?一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。JavaServlet技术为这些应用程序定义了一个特定于HTTP的servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。7.2Servlet的生命周期一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。(1)如果一个servlet的实例并不存在,Web容器a.加载servlet类。b.创建一个servlet类的实例。c.调用init初始化servlet实例。该初始化过程将在初始化servlet中讲述。(2)调用service方法,传递一个请求和响应对象。服务方法将在编写服务方法中讲述。如果该容器要移除这个servlet,可调用servlet的destroy方法来结束该servlet。结束过程将在结束Serlvet中讨论。7.3控制对共享资源的并发访问在多线程的服务器中,可能出现对共享资源的并发访问。除了作用域对象属性外,共享资源还包括存储器中的数据(如实例和类变量)、外部对象(如文件)、数据库连接和网络连接。并发访问可出现在多个情况下。多个Web组件访问存储在Web上下文中的对象。多个Web组件访问存储在会话中的对象。一个Web组件中的多个线程访问实例变量。一个Web容器一般为每个请求创建一个线程来处理。如果用户确认一个servlet实例每次只处理一个请求,servlet就能实现SingleThreadModel接口。如果servlet实现了这个接口,用户就能确保servlet的服务方法中不可能有两个线程并发执行。Web容器可通过同步访问一个servlet的单独实例、或者通过维护一个Web组件池为每个实例调用一个新的请求来实现。这个接口并不能防止Web组件访问共享资源(如静态类变量、外部对象)导致的同步问题。8.JSP页面8.1JSP2.0介绍新的JSP规范版本包括新的用于提升程序员工作效率功能,主要有:AnExpressionLanguage(EL)允许开发者创建Velocity-样式templates(amongotherthings).更快更简单的创建新标签的方法。Hello,${param.visitor}MVC模式为了把表现层presentation从请求处理requestprocessing和数据存储datastorage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件模式(比如Struts和Springframework)。8.2JSP技术的强势(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。8.3JSP技术的弱势(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。8.4JSP内置对象8.4.1request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。8.4.2response对象:对客户的请求做出动态的响应,向客户端发送数据。8.4.3session对象:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。8.4.5application对象:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。8.4.5out对象:out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。8.5JSP的技术方法8.5.1将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。8.5.2适应平台几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。8.5.3数据库连接Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。9、实训的收获与体会初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么TurboC,VisualC++好用,什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。慢慢的知道了,开始知道Java博大精深。让我不可思议的是JAVA2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。慢慢的自己知道了JCP组织是制定Java相关规范的发源地,于是订阅了一份邮件列表。真是好东西啊,定期有Java的最新动向,所以Java的动态尽收眼里,搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,最开始买了一套2本书,还不错。对于入门来说足够了。慢慢的知道是一本好书,后来才知道,有了Java经验后,看这本书特别过瘾,所以现在还经常翻翻。周而复始的看,效果特别好。慢慢的知道了Oreilly公司出的图书不错,不知道什么时候,要开始干项目了,以前从书上看到的东西,慢慢的在项目中有了很好的机会去温习,慢慢的有了感觉,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。慢慢的开始涉及到数据库访问,JDBC。随后Java规范了。最开始下载的规范是JDBCSpecification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系统,让我学会开发两层结构的应用系统。也不知道什么时候要开始开发一个网站,基于Linux+JSP+JavaBean+Oracle的系统。很是有意思。为什么这么说呢?因为不同于Swing+JDBC的开发模式,系统之间多了一层;同时,很多开发技术和面向左面系统不一样,比如分页技术。完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.在痛苦的抉择后,我选择J2EE..分享J2EE给我带来的快乐。学到现在,最大的感觉,就是:简单就是美,美就是Java.不会有学MFC的痛苦,也不会有去分析STL的艰辛,网路应用上一点也不逊色于C++。Servlet过滤器,XML方面较为全面的知识,知道了J2EE整个框架中各种技术的实际应用。慢慢的,开始研究WebLogic配置好的PetStore(也是Sun公司的)。慢慢的分析两者的不同之处。开始对J2EESpecification有了很好的感觉。因为J2EESpecification本身是很严肃的,但PetStore给出了活力。在反复的学习中,我明白了J2EE构架的7080%。新的问题又出来了,实际企业中会如何建构一个J2EE系统呢?带着这个问题,我开始分析CoreJ2EEPatterns,这本书。同时,也有EJBDesignPatterns。慢慢的,开始知道了J2EE的魅力所在,知道了J2EE为什么会在企业中得到较为好的认可。大家都知道,设计模式一词,在公司上班,你们的老板会看你的代码吗?会赞赏你的DP很好吗,我想很少。在完成你的工作进度之余,加班,加班,再加班,我想你没有更多的时间去分析研究DP.但,J2EE框架不一样,她内置了很多优秀的设计模式,我们在设计开发、构架一个J2EE系统中用到了很多设计模式。比如,MVC,EJB中封装的DAO设计模式。构架J2E系统用SessionFaade,MessageFaade设计模式也不会太困难。这也是后来J2EE吸引我的地方。慢慢的我知道了,作为一个J2EE开发者,我们要掌握其中的核心内容。我个人认为,3方面很重要。实施EJB系统常用的架构、设计模式,比如sessionfaade、messagefaade、DTO等。J2EE系统构架中常用的模式。UML->EJB,EJB->UML相互映射。通过实训,我自身发生了重大的转变,我相信我会在JAVA开发这条路上走的更长更远。
友情提示:本文中关于《JavaWeb实习报告》给出的范例仅供您参考拓展思维使用,JavaWeb实习报告:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《JavaWeb实习报告》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/673122.html
- 上一篇:WEB应用程序设计与开发实训
- 下一篇:前端开发中一些常用技巧总结