第一篇:JavaWeb实习报告
武汉工程大学计算机科学与工程学院
生产实习报告
JavaWeb实习报告
一、实习目的与任务
为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作的意识,了解软件开发的过程和基本流程,以便于帮助我们能够在大四毕业时可找到一份客观的工作,我们在大四刚开学就开始了生产实习。
这次实习的主要任务是Java Web软件开发,学习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写出来的程序可分为两类,分别是Java Applet与一般的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=“http://www.xiexiebang.com”;Method属性表示提交的方法,一般为设为post;在Form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan
武汉工程大学计算机科学与工程学院
生产实习报告
Mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。Mysql的Sql指得是“结构化查询语言”,Sql是用于访问数据库的最常用标准化语言。同时,Mysql软件也是一种“开放源码”的软件,意味着任何人都能使用和改变软件。任何人都能从Internet下载Mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。Mysql软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。
Mysql服务器还有一套实用的特性集合,在基准测试主页上,给出了Mysql服务器和其他数据库管理器的比较结果。Mysql支持多种连接,包括TCP/IP、ODBC和JDBC等多种数据库连接途径,而我们此次实习用到的是JDBC数据库连接方法,这一点在下面会讲到。
此次实习我们主要学习了如何在Mysql数据库中建立表格,如何执行Sql语句等等。首先,打开Mysql编写框,执行语句show databases,即可查看Mysql中有哪些数据库,运用create+数据库名语句可建立想要的数据库,运用use+数据库名即可进入对应的数据库。
进入数据库之后,就可以执行数据库中的增、删、查、改等Sql语句了,运用create table +表名(表中所需要的元素),这样就可以建立一张表了,运用desc+表名就可以查看表,运用Sql语句“select * from +表名”就可以查看表中的所有数据,运用“insert into „„”语句可以向表中添加数据;运用“update +表 set „„ Where„„”可以更改表中指定的某项数据;运用“delete +表 where „„”语句可以删除表中的某项数据„„
四、JDBC数据库连接
Java中的JDBC,JDBC是Java Data Base Connectivity的缩写,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
连接数据库的方法有一个模板,代码如下: public class DBManager { private static final String URL=“jdbc:mysql://localhost:3306/test”;private static final String USER=“root”;private static final String PASSWORD=“123”;private static Connection conn=null;
public static Connection getConn(){ try {
if(conn==null){
//注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
conn=DriverManager.getConnection(URL,USER,PASSWORD);
} } catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();}
return conn;} } 以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据
武汉工程大学计算机科学与工程学院
生产实习报告
六、Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。举例如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//
1、获取id
String sid=request.getParameter(“id”);
int id=Integer.parseInt(sid);
//
2、根据id查询到对应的学生信息
StuDAO sdao=new StuDAO();
StuDTO stu=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中的几乎一样,这样处理之后,减少了页面,不过功能没有变化,更加方便了!
四、实习总结及分析
这次实习主要是学习Java Web开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。
首先是JSP,它是Java Web开发的基础,需要的页面都是用JSP来建立的,它是一种
第二篇:javaweb毕业实习报告
javaweb毕业实习报告
javaweb毕业实习报告
一、实训题目
会员管理系统的设计与实现
二、实训内容
引言
.1系统开发背景
本系统是在Internet普及的情况下,越来越多的公司企业建设了自己的网站或门户以展示本公司的发展历程及现状,尤其是众多的商业公司它们利用自己的网站来展示或销售自己的产品以及通过网站与自己的用户建立良好的沟通。那么,对于商业公司来说客户资源对企业可说是至关重要的。如何在自己的企业网站上吸引、寻找、管理自己的客户资源以及注册会员便成为企业面临的重大问题。因此,在众多企业的需求之下会员管理系统便应运而生了。
.2开发的目的意义
本系统的目的在于设计出一个符合企业需求,能帮助其完成对企业自身的客户或会员的信息进行管理统计分类功能的系统。这为企业管理者按照各种分类来划分,寻找会员提高管理效率,为企业创造效益。
需求分析与总体设计
功能需求分析
随着网络技术和电子商务的飞速发展,越来越多的企业建立的自己的网站以展示自己的企业文化,商品以及和自己的客户建立良好的沟通。现在越来越多的网络用户体会到了网上订购的快捷与方便,所以为了满足客户的需求以及增强自己的竞争力,企业网站需要添加会员管理功能。一般企业拥有大量的会员信息,并且各个会员可能有自己不同的需求,所以建立一个可以快速处理会员信息,并能分类和满足会员查询自己信息的会员管理系统迫在眉睫。
通过调查、查阅资料及参考其他会员管理系统的资料得出结论,会员管理系统应实现普通会员的登录模块,会员登录可进行查询个人信息,浏览公告、下载商品等操作。另外更重要的模块是管理员的后台管理功能模块,管理员的权限高于普通会员可以对会员的信息进行管理,还可以进行添加商品、发布公告等操作。本系统的具体需
求如下:
(1)登录:会员管理系统的登录权限应分为两个,一是普通会员,他们的主要权限有查看个人基本信息。而另一个是超级管理员,他不仅拥有一般会员所具有的权限,而且具有管理权限。
(2)会员登录前台:会员登录之后可以查看个人基本信息、公告、交易明晰,还可以进行点卡冲值、获取商品、添加评论及相册等。
后台管理:管理员不仅可以查看会员登录后的所有信息,而且对个人会员和企业会员的基本信息可以进行分类管理,如添加新会员,修改会员信息以及删除会员等。并且可以添加会员商品、发布公告、生成点卡等。
可行性分析
(1)经济可行性
系统的开发规模较小,所需设备也少,尽量利用了现有的设备。系统的运行环境为一般企业通用的操作系统和常用数据库软件,安装方便快捷,运行过程中不易出错,且大多数维护人员都熟悉这种开发语言,无形中为系统实施后的维护工作及更新升级工作带来了方便。兼容性好,不必为购买新设备而投入大量财力。由于开发周期较短,各种开发费用较少,而且系统的界面美观大方,操作简单,方便实用,能够很快被熟悉原系统的工作人员所熟悉。所以本系统在开发、运行、维护等阶段的所需费用都很低。
(2)技术可行性
当前计算机软硬件技术都在飞速发展,计算机的性能在不断提高,我们可以花少 数钱买到性价比较高的计算机。企业拥有的局域网,计算机配置也较高,每台计算机都配有100M网卡,局域网的通信能力较强,可满足较频繁的远程数据库操作服务。软件方面也是现今中小型企业常用的Windows操作系统和SQLServer等数据库软件,软、硬件条件都较为成熟,为本系统的开发和使用提供了较好的技术方面的可行性。
(3)管理可行性
由于系统人性化设计较好,采用B/S结构,无须客户端配置,管理员登陆操作简单,可以方便的进行会员管理,无须对相关人员进行专业培训。
系统设计思想
应用程序主要实现会员前台登录、系统管理员后台管理等功能。本系统在整体上可划分为数据库、数据访问层和业务逻辑层。数据库是系统最底层,它存储系统的所有数据。
数据访问层是建立在数据库之上,应用程序通过该层访问数据库。数据访问层一般封装数据库的选择、添加、更新和删除等操作,同时还为业务逻辑层提供访问数据的接口或函数等。该层直接与数据库相关联,同时又为业务逻辑层服务,所以数据访问层的设计好坏关系到整个系统的成败。
业务逻辑层包括管理用户、注册用户等业务逻辑,它一般由Web页面实现,如系统登录页面,用户管理页面等。
用户注册流程图
这个系统提供登录、注册功能,可以对登入系统的用户进行身份验证,使得只有合法的用户才可以登录系统,为网站资源提供了一定的安全性保护,可以提供新用户注册加入的服务。对接入的系统的用户进行管理,使得具有一定权限的用户才可以访问相应的网络资源,从而在一定程度上保护了资源。图2是用户注册的流程图,它能很好的反映出注册的过程。
javaweb毕业实习总结
Java web 开发教程学习心得 Java web课程结束了,在完成了eclipse三份实验报告之后我开始总结这门课程自己究竟学到了什么。
从C语言到Java,再到jsp,最后到java web,一直都在与编程都打交道,学好它一是专业的需要,二是自己觉得它今后对自己会有很大的用途。C语言是一个面向过程的语言,而Java是一个面向对象的语言。在C语言里,行为称为函数;在Java里,行为称为方法。在C语言里,只有变量和函数;在Java里,一切逻辑由类封装,即 “万物皆对象”。C语言的struct和Java的类相似,但struct里只能有属性,而类里可以有属性和方法。所以,C语言的分工不清晰,主控程序几乎承担了全部的职责;而Java可以把方法放在类里,对象的职能很多,可以单独完成某个类的全部方法。
首先我想回顾一下java web 这本书上的主要内容:
第一章是对Web应用程序的概述。从中我了解到Web应用程序的三层体系结构:表示层、业务层、数据存取层。它们同是叙述在编写代码时应做的规划和应遵循的规则,这种规划在以后的学习中时有出现,说明编程并不是一味地进行循环判断、死记硬背,而需要在技术上有所加强、在效率上有所提高。接下来学的是JSP知识。要学JSP,就必须会HTML,如果HTML学不通,这对以后的学习都是一个瓶颈。这点我有所体会。因为我对HTML掌握得比较好,在这方面没有遇到什么困难。但如果没掌握好这些知识,加上要学新知识,就会在旧难题的基础上增加新难题,两头招架,实有些吃不消。所以,基础是很重要的,基础一定要打扎实,吃透,否则上层建筑的建起就不会很顺利甚至没法起步。然后是JavaBean。JavaBean里有set()和get()方法,用这些方法能很容易地传值,逻辑上更标准,代码看起来也更规范。但set()和get()方法只是用来对属性进行操作的,所以如果是进行复杂的逻辑或对数据库进行操作等,那么就不要写成set()和get()方法,只用一个有返回值的方法就足以。这样直观方便,且符合规范。
接着是Servlet。它给我的第一感觉是很专业、很难懂。书上介绍了一大堆接口、类、和重写的方法,一时觉得晕头转向。后来用得多、看得多了,Servlet的基本格式也记得差不多,其实也没什么难的。只要记住Servlet是一个用Java编写的应用程序,在服务器上运行,用来处理请求和响应,也可以单独做为一个Web页面。
在JDBC技术这章,我感到学习的压力。JDBC的工作原理、JDBC的分类、它的主要接口、以及它连接数据库的基本过程和运行效果等事先后我没有听懂。后来在图书馆借到了一本资料书 ——电子工业出版社出版的《Java Web从初学到精通》适合Java开发Web应用和J2EE方面的初学者加上编程实战演习,总算弄懂了点眉目。
最后一章主要是一些技术专题。例如访问路径问题、结果集处理、复杂查询等。在前面几章的的能力功底基础上这章显得要简单轻松地多。大致类似于对前面知识的系统总结。
以上就是对这个阶段学习的一段回顾。
接下来我想总结一下自己的学习心得:
首先学习这门课程,就必须先要了解什么是web应用。通过浏览器可以访问新浪网、中华网、淘宝网、网易、搜狐网、微软的网站及sun 公司的网站等,这些就是Web应用。对于web 应用,我们需要使用浏览器,通过网络访问在远程的服务器运行的程序。Web应用指的就是这些网站中的程序。
其次,是编程。学习编程最重要的就是勤记忆,勤练习,勤思考。需要记忆很多,有些东西必须要死记,没有偷懒的办法,在记忆的时候可以找一些规律,比如把类似的东西归在一起记忆。平时在做练习的时候书上的例题和习题很重要,只要把书上的例子吃透,课后的习题都会做,这样就能达到掌握知识的目的,最后在期末复习的过程中要不时地复习前面的知识,这样才能熟练掌握所学的知识。在勤思考方面,就是在平时的编程演练中遇到困难的时候不要立刻急着去问身边的同学或是老师,自己应当对照课本或是相关的学习资料慢慢进行修改,只有在自己确实已经尽力但仍然不知如何操作的情况下才可以去询问别人,只有这样才可以加深自己的影响。
还记得自己当初最开始时学习java的情景。那时自己除了知道什么是继承,封装,多态,抽象类,接口这些外,其他的就什么都部知道了。后来自己在慢慢摸索的过程中才逐渐积累了对这门学科的敏感度 开始接触Java觉Servlet是一个非常深奥的技术。我曾经想学习网页设计,看到HTML哪些松散的标记,我放弃了,最终也没有学会做网页。只知道网页编辑工作有Drameware 或FrontPage。当接触Serlvet后,发现做网页竟然也可以像写Java程序一样进行编写。完成第一个用Servlet写的WEB版的HelloWorld 程序,足足花费了我半天时间。主要是花费在环境搭配上面。一个小小的HELLO World ,用Drameware可能也就一分钟就能搞定的事。对于一个完全不懂HTML的人来说,要想用Servlet来开发动态WEB应用还是太难了。接下来很快就接触到了JSP。JSP并不需要我在Java程序里写HTML代码,而是变成了在HTML中写Java程序。初学时,所有的数据库连接,数据库访问,数据显示,业务代码和HTML标记等都写在JSP代码中,感觉JSP真是无所不能。在做一些小应用时,开发速度也非常的快。而当遇到了比较复杂的业务逻辑后,JSP开发就像是一个恶梦,每天大量的工作就是调试页面,当其它页面需要类似的功能时,进行代码拷贝来进行代码的复用,后来才知道这就是典型的Model 1模型。当把JSP与Servlet相结合后,一切都发生了改变。JSP仅用于数据展示,而Servlet用于进行业务调用和页面流程控制,这就是所谓的Model 2模型。原来JSP并不是Servlet的替代品,JSP更需要与Servlet进行合作。再明白了Servlet与的重要后,才回过头开始去学习Servlet,包括Servlet的生命周期,Servlet的重要接口及方法,自定义标签等。通过这样反复的联系我终于在面对java和jsp时不再像以前那样那么没有自信了。
所以花费些力气去学习Java基础,学习Jsp,Servlet,甚于学HTML,Javascript对进行Web开发都是十分必要的。
最后我想总结一下学习方向的建议,JAVA基础知识是学习任何JAVA扩展体系知识的前提,所以在学习java web的过程中,一定得抽时间学习JAVA基础,窝在图书馆找到了基本相关的读物——《Java核心技术》《Java编程思想》和JDK的API文档。另外由于编程有一些专用的英语术语,因此学好一些必要与之相关的英语对我们今后更好地学习这门学科是很有帮助的。
第三篇:javaweb 实训报告
1、实习题目:java软件开发
2、实习目的:
本人由于在达内实训时,各项成绩优异,被北京木联能科技有限公司录用为java软件开发实习生,作为即将步入社会的应届毕业生,我带着无比激动的心情和远大的理想,到北京木联能科技有限公司实习,实习目的如下:
进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,巩固大学所学专业的基本知识,提高分析、判断和处理实际问题的能力,锻炼自己的实际动手能力,增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
3、实习时间:2010年3月15号—2010年6月6号
4、实习地点:武汉达内科技有限公司
5、实习单位简介
武汉达内科技有限公司(以下简称“公司”)位于武汉东湖开发区关山一路20号 中国光谷创意产业基地2号楼4层。公司长期致力于培养IT精英,近年来成功的培养了无数的人才,公司师资都是工作相当有经验的讲师主讲。
达内IT培训集团是中国高端IT培训行业领导品牌,致力于培养Java、C++、C#/.Net等方面的中高端软件人才。由美国国际数据集团IDGVC Partners和集富亚洲JAFCO ASIA投资,是国内首家获得国际风险投资的IT培训机构,2006-2008连续3年入选德勤“高科技高成长中国50强、亚太地区500强”。
达内IT培训集团是Java之父Sun公司在中国境内最大的Java培训合作伙伴、中关村科技园区管委会指定的“软件人才培养示范基地”,是中国“先就业后付款”IT培训模式的创始者。经过7年运营,达内IT培训集团在大学生IT就业培训领域积累了丰富的专业经验与就业资源。以中关村科技园区为依托,达内在中国软件业发达城市——北京、上海、广州、深圳、大连、南京、武汉、杭州、西安、苏州、成都、太原等20多个城市,建立了近30家培训中心,拥有2万多平米的培训场地,在校生规模达5000人。已累计为IBM、微软、摩托罗拉、华为、中软、用友、Yahoo、阿里巴巴、TOM、新浪、搜狐、百度、联想、神州数码、大唐电信、亚信等知名IT企业培养输送5万多名中高级软件人才,跨越电信、金融、电子政务(商务)、电力、通讯、搜索、欧美外包及对日外包等十数个行业。
目前,达内集团拥有500多名员工,年产值接近2亿元,运营规模已远远超出其它同类机构。
petabyte(千兆兆)和更大的文件也能在Linux上实现。然而,最大可用的文件容量仍取决于多项因素,其中之一就是用于存储MySQL表的文件系统。另外,Windows用户请注意: FAT和VFAT(FAT32)不适合MySQL的生产使用。应使用NTFS。
在默认情况下,MySQL创建的MyISAM表允许的最大尺寸为4GB。你可以使用SHOW TABLE STATUS语句或myisamchk-dv tbl_name检查表的最大尺寸。
如果需要使用大于4GB的MyISAM表(而且你的操作系统支持大文件),可使用允许AVG_ROW_LENGTH和MAX_ROWS选项的CREATE TABLE语句。创建了表后,也可以使用ALTER TABLE更改这些选项,以增加表的最大允许容量。
处理MyISAM表文件大小的其他方式:
·如果你的大表是只读的,可使用myisampack压缩它。myisampack通常能将表压缩至少50%,因而,从结果上看,可获得更大的表。此外,myisampack还能将多个表合并为1个表。·MySQL包含一个允许处理MyISAM表集合的MERGE库,这类MyISAM表具有与单个MERGE表相同的结构。
6.3.5 java与SQL的应用
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL
语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。SQL Server2000是微软公司新一代的数据库产品,它是在SQL Server7.0建立的坚固基础上产生的,并对SQL Server7.0做了大量扩展。SQL Server2000通过高端硬件平台以及最新网络和存储技术的支持,可为最大的Web站点和企业级应用提供可扩展性和高可靠性。Java通过JDBC、ODBC接口访问数据库。
6.3.6 JDBC、ODBC接口
Java应用程序通过JDBC API(java.sql)与数据库连接,而实际的动作则是由JDBC驱动程序管理器(JDBC Driver Manager)通过JDBC驱动程序与数据库系统进行连接。ODBC(Open DataBase Connectivity)即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的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服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。
javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。
7.2 Servlet的生命周期
一个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.1 JSP 2.0介绍
新的JSP规范版本包括新的用于提升程序员工作效率功能,主要有: An Expression Language(EL)
允许开发者创建 Velocity-样式 templates(among other things).更快更简单的创建新标签的方法。
Hello,${param.visitor}
<%--same as: Hello,<%=request.getParameter(“visitor”)%>--%> MVC 模式
为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。
8.2 JSP技术的强势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
8.3 JSP技术的弱势
(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。
8.4 JSP内置对象
8.4.1request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
8.4.2 response对象:
对客户的请求做出动态的响应,向客户端发送数据。
8.4.3 session对象:
session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管 理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
8.4.5 application对象:
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览 时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
8.4.5 out对象:
out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。8.5 JSP的技术方法
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技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚
本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
9、实训的收获与体会
初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用,什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。慢慢的知道了http://java.sun.com,开始知道Java博大精深。让我不可思议的是JAVA 2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。慢慢的自己知道了JCP组织是制定Java相关规范的发源地 ,于是订阅了一份邮件列表。真是好东西啊,定期有Java的最新动向,所以Java的动态尽收眼里,搭起Java开发环境后,记得刚开始还是用UltraEdit编辑并编译的慢慢的改用JCreator了,最开始买了一套
也不知道什么时候要开始开发一个网站,基于Linux+JSP+JavaBean+Oracle的系统。很是有意思。为什么这么说呢?因为不同于Swing+JDBC的开发模式,系统之间多了一层;同时,很多开发技术和面向左面系统不一样,比如分页技术。
完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.在痛苦的抉择后,我选择J2EE..分享J2EE给我带来的快乐。学到现在,最大的感觉,就是: 简单就是美,美就是Java.不会有学MFC的痛苦,也不会有去分析STL的艰辛,网路应用上一点也不逊色于C++。Servlet过滤器,XML方面较为全面的知识,知道了J2EE整个框架中各种技术的实际应用。慢慢的,开始研究WebLogic配置好的Pet Store(也是Sun公司的)。慢慢的分析两者的不同之处。开始对J2EE Specification有了很好的感觉。因为J2EE Specification本身是很严肃的,但Pet Store给出了活力。在反复的学习中,我明白了J2EE构架的70—80%。新的问题又出来了,实际企业中会如何建构一个J2EE系统呢?带着这个问题,我开始分析Core J2EE Patterns,这本书。同时,也有EJB Design Patterns。慢慢的,开始知道了J2EE的魅力所在,知道了J2EE为什么会在企业中得到较为好的认可。大家都知道,设计模式一词,在公司上班,你们的老板会看你的代码吗?会赞赏你的DP很好吗,我想很少。在完成你的工作进度之余,加班,加班,再加班,我想你没有更多的时间去
分析研究DP.但,J2EE框架不一样,她内置了很多优秀的设计模式,我们在设计开发、构架一个J2EE系统中用到了很多设计模式。比如,MVC,EJB中封装的DAO设计模式。构架J2E系统用Session Façade,Message Façade设计模式也不会太困难。这也是后来J2EE吸引我的地方。慢慢的我知道了,作为一个J2EE开发者,我们要掌握其中的核心内容。我个人认为,3方面很重要。实施EJB系统常用的架构、设计模式,比如session façade、message façade、DTO等。J2EE系统构架中常用的模式。UML-> EJB,EJB->UML相互映
射。
通过实训,我自身发生了重大的转变,我相信我会在JAVA开发这条路上走的更长更远。
第四篇:javaweb课程设计
课程设计:基于Java Web的讨论区BBS系统的设计与实现
本系统要求实现以下主要功能:
(1)登录:提供用户登录系统的功能,需要输入用户名和密码
(2)注册:提供用户注册的功能,需要输入用户名、密码、密码确认、Email、QQ
(3)修改注册信息:提供用户修改注册信息的功能,可以修改密码、Email、QQ
(4)浏览讨论区:用户登录后就可以浏览系统中已存在的讨论区,用户可以查看某讨论
区的详细信息,也可以进入该讨论区浏览已发表的帖子,以及回帖
(5)创建讨论区:用户可以创建讨论区,每个讨论区包含一个名称和顺序号,每个讨论
区的名称在系统中是唯一的,顺序号表示讨论区在列表中的排序
(6)修改讨论区:提供讨论区名称和顺序号的修改功能
(7)删除讨论区:提供讨论区删除的功能,方便管理员进行讨论区管理
(8)浏览帖子:用户进入一个讨论区后,可以看到帖子列表,包含帖子主题、作者、创
建时间、回复次数,点击一个帖子,可以查看该帖子的内容和回帖
(9)创建帖子:用户进入一个讨论区后,可以选择创建一个新帖子,需要输入帖子标题
和内容
(10)修改帖子:提供给管理员使用,修改帖子标题和内容
(11)删除帖子:提供给管理员使用,方便管理员进行帖子整理
(12)回复帖子:用户在浏览帖子信息的时候,可以进行回复
第五篇:javaweb学习心得
学习心得
在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,过滤器,监听器,JSTL,EL,jQuery,Ajax。
下面就各个模块进行总结:在学习html时,我是对这个没太在意的,因为里面全部是标签,没有需要理解的内容,全部是属于识记的,所以在学习时相对轻松,对于html常用的标签都是非常清楚的form中的十一种类型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的标签如div,table,span,select都是重要的标签.Css的学习:虽然说在标签中也可以定义样式,但是这么做看起来不是那么明智,我在学CSS时还是比较努力的,所有的样式效果都测试过,并且写了相应的案例,只是过了不到3个月就忘了一大半,很多时候都是查文档才能写出来的,虽然CSS对于我们来说不必要非常精通,但是我觉得掌握的东西越多,以后的工作就越轻松,所以在中级结束后也会去看看前面的笔记和案例。
Javascript:js 我认为是最重要的,甚至于超过servlet,jsp,在上课期间,讲的内容还是比较少的,就javascript中创建对象来说吧,应该只讲过3中方法,虽然在一般的情况下是用不上的,但是我觉得还是有必要学习的,这样有助于看懂别人写的框架,在javascript这部分学习中讲的最多的还是dom操作,不过我觉得用dom操作太繁琐了,写的代码太多,而且效率看起来也不高,后面就是讲的事件,事件也算是简单的,只是对触发的事件进行相应的响应。除了这些就是javascript流程控制,对象一些基本语法,这些和java类似,所以在上课时没有讲得太多。
Xml: Markup Language可扩展标记语言。它是由SGML(Standard Gerneralized Markup language)发展而来的,允许开发者自定标签,可以将标签和内容有效的分离。在XML技术里,可以编写一个文档来约束XML文档的书写规范,称之为XML约束。本文主要介绍DTD与Schema两种约束,在这里学习了dtd,scheama,定义XML约束,这部分的学习是我感觉最累的一部分,DTD还算好,SCheama里面的内容,现在都忘了,没有任何记忆,只知道在XML约束中有着两中方式,还好这些在刚开始工作时是用不上的,因此我也没有用很多时间来学习。
Servlet:我觉得是比较简单的,可能是因为它是java代码,容易理解。首先讲的是开发环境的配置,安装tomcat,了解tomcat下的目录,以及web工程下的目录。后来是讲了servlet的访问方式,post和get的区别,处理中文乱码是servlet中一个重要的知识点,几乎每个项目都会遇到这个问题。主要乱码有get,post乱码,是通过设置request或者response的编码方式来实现的。Servlet间的跳转方式有重定向和转发,对于重定向和转发的区别,现在理解的很透彻了,重定向是不能获取request中参数,是客户端的两次请求,而转发是服务器内部跳转,不过,两种在设置过滤器的情况下,都要通过过滤器才能跳转。Servlet的生命周期是笔试的必考题,其实这是很简单的,只需要理解,没必要死记硬背的,session算是重要的知识点,很多数据都是存储在内存中,如购物车,用户信息等,还可以对session设置生存时间。说到session就必须说说四种会话跟踪技术,cookie,URL重写,表单域隐藏和session。
JSP:JSP实际上和servlet是一样的,只不过两者侧重点不同,JSP的内置对象和作用域大致是一样的,JSP中还有动作,常用的有操作JavaBean的动作,页面跳转的动作,以及包含的动作。这里重点提到两种包含的区别。在JSP还讲过jstl和EL表达式,都是基础的应用,不过写自定义的标签还是要有一定的java基础的,我开始不太理解标签的解析过程,后来看了几个例子,发现自定义的已不是那么难。
jQuery:jQuery可以说是中级部分学的最好的,主要是它方便了,特别是选择器,而且避免了一些浏览器的差异,所以在学习jQuery后,就再也不想用javascript来获取元素了。不仅如此,jQuery中封装的Ajax操作也是非常简单,不需要自己封装一个类,$.get和$.post 能够省去很多麻烦,jQuery的监听事件也是很简单,不需要在标签中添加对应事件,可以动态的绑定事件。还有就是dom操作更是方便。我在学习完Ajax,json后就发现,即使是没有JSP,也能做出一个动态页面出来,只是会存在效率问题。
总结:虽然说这上面的知识大部分都掌握了,但是能否灵活运用才是重点,所以在今后的学习中多思考问题是否有多种解决方法。