javaweb实习报告.doc_第1页
javaweb实习报告.doc_第2页
javaweb实习报告.doc_第3页
javaweb实习报告.doc_第4页
javaweb实习报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

javaweb实习报告 第一篇:javaweb开发技术实验报告模版第二篇:javaweb课程设计实训报告第三篇:javaweb邮件学习第四篇:javaweb总结第五篇:javaweb总结更多相关范文 项目综合实践报告题目:html+css旅游门户网站设计 班级:计算机xx(1)姓名:丁一学号:954211完成日期:xx.9.14 一、分析设计 用文字、图表等说明设计思路及设计结果。 二、主要源代码 html css 三、效果图 屏幕抓图 四、调试过程 (调试过程中碰到的问题及解决方法) 五、实验结论 1、实验结果图 2、实验心得体会 javaweb课程设计实训报告 我们进行了为期一周的javaweb的课程实训。在这次实训中,我觉得我学到了很多东西。这次,老师给我们安排了一个项目,是关于商店购物的。首先,我们划分了几个小组,每组4-6人,每个人有每个人的工作,每个人的工作完成后整合到一起,这个项目就完成了。我在我们小组的工作是写一段删除商品的java代码。因为我的基础比较差,所以我分担的工作比较少,下面是我做的一段代码: publicvoiddeleteproduct(stringid) statementstmt=null; connecttodb(); inttempid= integer.parseint(id); try stmt= this.con.createstatement(); stmt.execute(deletefrom shop_infowhereproduct_id=+tempid); catch(exceptione) e.printstacktrace(); finally close(this.con,stmt,null); 总而言之,这次实训对我的帮助很大,我工作会很有从中学到了什么是团队协作,正所谓团结就是力量,不仅如此,我还学到了很多的专业知识,积累了一些经验。我想,对于我以后的工作会很有帮助,希望还能有更多像这样的机会让我能够锻炼我自己。 mons-fileupload-1.1.1.jar上传文件总结: 1、验证是否要处理的是上传文件 servletfileupload.ismultipartcontent(request) 2、创建diskfileitemfactory对象并对其初始化设置 diskfileitemfactoryfactory=newdiskfileitemfactory(); factory.setsizethreshold(20*1024); factory.setrepository(factory.getrepository(); 3、创建servletfileupload对象并设置其编码方式 servletfileuploadupload=newservletfileupload(factory); upload.setheaderencoding(gbk); 4、开始获取上传文件的集合: formlists=upload.parserequest(request); 5、设置上传文件允许的大小 intsize=2*1024*1024; 6、循环遍历formlists集合来根据其元素的类型(普通表单域还是文件域)进行赋值还是上传功能iteratoriter=formlists.iterator(); while(iter.hasnext() fileitemformitem=(fileitem)iter.next();7、是文件域则执行上传: 具体做法:(1)、获取文件路径全名:stringname=formitem.getname(); (2)、判断文件名后缀是否符合要求:!name.endswith(mp3) (3)、判断文件大小是否符合要求formitem.getsize()size if/else(4)、都符合要求则上传: 第一步:判断文件的名称不能为空(formitem.getname()、大小不能为0 (formitem.getsize()),如果不符合要求则continue执行下一循环 第二步:获取文件的单纯文件名称:name.substring(name.lastindexof() +1,name.length(); 第三步:设置保存到的服务器地址:filedir(file/)+单纯名称;filesavefile=newfile(服务器地址); 第四步:上传:formitem.write(savefile); 、是普通表单域则将表单项的值赋值给相关对象变量,如(更多内容:)javabean(每一次循环将该次对应的表单项的值付 给适当的变量对象) stringformname=formitem.getfieldname();获取普通表单项的名称 stringcon=formitem.getstring(gbk); 用formname.equals(“)来判断 下载文件具体方法: 1、获取服务器下载地址并将此地址字符串进行编码: stringpath=request.getparameter(path); 2、创建下载目录: filefile=newfile(path);获取普通表单项的值并编码path=newstring(path.getbytes(iso-8859-1); 3、创建文件字节输入流 inputstreamin=newfileinputstream(file); 4、创建输出流对象 outputstreamos=response.getoutputstream(); 5、设置该输出流的应大头、编码等配置 response.addheader(content-disposition,attachment;filename= +newstring(file.getname().getbytes(gbk),iso-8859-1); response.addheader(content-length,file.length()+);response.setcharacterencoding(gbk); 6、开始下载: intdata=0; while(data=in.read()!=-1) os.write(data); 7、关闭输入输出流 os.close(); in.close(); 邮件接收的方法: dao: 1、创建邮件接收类:store 思路:创建properties类并添加属性-创建session对象-创建store对象并连接到服务器和编写关闭方法 2、获取全部已读邮件的名称集合的方法返回string 3、获取全部已读或未读邮件的内容的方法返回list(包含邮件信息和附件状态,但不包含具体附件内容)思路:获取store对象-获取pop3folder对象-打开pop3folder邮件夹-创建fetchprofile预提取对象并对其添加两个常用属性-定义message对象数组并设为null-获取全部已读邮件的uid字符串-若字符串不为空则-转换为数组并进行排序-根据要求的已读或者未读条件来获取全部已读或未读邮件信息给message(folder.search)-后退三步-若字符串为空则-获取全部未读邮件信息message-?开始提取上述邮件数组中每一个邮件的详细信息-循环遍历message数组-定义mimemessage对象并赋值为数组元素-获取邮件id、发件人、邮件时间-根据编码类型获取邮件主题-由自定义方法获取此邮件的附件对象(string)-messagei.getflags().getsystemflags().tostring();-如果判断返回的邮件有附件,则获取附件设置为1,否则设置为0(来控制页面中的附件图标的显示)-将此邮件信息对象添加到list中。 4、向数据库中添加已读邮件的标记的方法:iduidaddress 5、获取指定邮件中附件的方法:此方法中重点是对邮件内容的编码处理,故这里重点介绍主要功能语法:思路:(1)定义该邮件名称对应的所有附件连接字符串为超链接(附件之间用空格隔开)(string,由多个”附件序号=&附件名称=&邮件序号”组成),定义邮件名称字符串(已知条件) (2)multipartmultipart=(multipart)part.getcontent();得到该邮件所有的内容集合,然后对其遍历以获取每一个multipart中每一个bodypart-判断此bodypart是否为附件,若是附件则获取该附件的名称并添加到(1)中的连接字符串中,连接字符串中附件序号为遍历变量j 最后:intcounts=multipart.getcount(); bodypart对象的个数/返回mimemultipart对象中保存的/关闭流response.setcontenttype(application/octet-stream); for(inti=0;i 并返回stringobj=邮件主题内容,filename1; 6、对输入的utf7编码的内容进行转码的方法 servlet: 下载附件servlet: 思路:设置response.setcontenttype(text/html;charset=gbk)、 request.setcharacterencoding(gbk)-创建session对象-创建servletoutputstream对象-获取页面传递变量:附件序号、附件名称;获取session变量message-将附件名称进行编码处理:filename=new string(filename.getbytes(),iso-8859-1)-response.setheader(content-disposition,attachment;filename=+filename)-由”message”获取multipart对象-由multipart对象获取bodypart对象-由bodypart对象获取inputstream对象-开始下载: intc=0; while(c=is.read()!=-1)out.write(c); 收取邮件servlet(邮件的全部具体信息): 1、邮箱登陆的验证方法: 思路:获取表单传递值的hostusernamepwd-用dao(1)中的方法进行用户验证如果正确-创建session对象-用session.setattribute的方法保存登陆的用户信息(以上三个)- store.close(); 2、获取当前分页页面中已读或未读的全部邮件的集合(包含邮件信息和附件状态,但不包含具体附件内容)思路:创建session对象,并获session变量hostusernamepwd和request变量flag和page-request.setattribute(flag,flag)-根据request变量”page”来判断是否已经开始分页浏览-若没有则先执行dao(3)方法获取已读或未读的全部邮件集合,然后执行自定义分页类中的初始化方法获取上述集合中的第一页中的邮件集合,并request.getsession().setattribute(pagination,分页类的实例化);-若已经开始分页,则将当前页page赋值为已经存在的session类型的分页类对象中的getpage方法中返回的page,并且执行自定义分页类中的类似初始化方法的获取当前页面集合的方法(具体看程序) 3、查看邮件详细信息:(获取指定邮件的信息) 思路:同dao(3)中的方法相似不同之处是:dao(3)查询的是全部已读或未读而本案查询的是指定的邮件idtools: 本案中主要为分页类的编写: 1、初始化获取第一页的集合 2、获取已分页的当前页面的集合 3、获取全部记录数 4、获取最大页数 5、获取当前页数 6、获取分页导航 javaweb总结 1.jsp运行原理 (1)用户通过客户端浏览器向服务器发送请求。 (2)jsp文件将jsp引擎编译成java的class文件,即servlet。 (3)将产生的servlet加载到内存执行。 (4)servlet的运行结果以html(或xml)形式通过web服务器返回客户端的浏览器。 2.web项目设计 (1)公开目录(2)web_inf目录(3)class目录 3.jsp的基本语法 (1)脚本元素:声明、脚本段、表达式。 (2)脚本段: (3)声明:不会产生任何输出内容声明全局变量。 (4)表达式: (5)el表达式: (6)指令元素:不在客户端可见 (7)page指令、include指令、taglib指令 page指令:language属性、contenttype(text/html)、text/plainapplication/msword、application/x-msexecl、pageencoding、info、import属性. include指令:在jsp页面中静态包含一个文件taglib指令:指令元素翻译阶段执行,动作元素执行阶段被执行。 用于包含其他文件可以是静态文件,也可以是动态文件。?包含动态文件时 用传(建一值) 考点: 4.指令与动作的区别(include) 1.执行时间不同 指令是偏译时包含静态文件 动作?是运行时包含的文件 2.引入内容不同 指令引入静态文本(html.jsp)。 动作引入执行页面或severlet的应答文本。 5.jsp内置对象 out,request,response,session,application,page,pagecontext,exception,config request客户端向服务端发送请求。 response用于服务器端封装jsp处理请求后产生的结果。 response对象的sendredirect(url)方法相当于两次请求。 而在网址不变情况下内部跳转不同页面,但依旧属于同一次请求 6.session和cookie的区别 1.存放地点不同 session存放在服务器端,cookie存放在客户端的硬盘里 2.存活时间 session随用户访问服务器而产生,随客户下线或超时而消失 3.安全性 session存放在服务器端,不能被修改,且随客户端浏览器的关闭而消失,安全性较好。cookie存放在客户端,安全性较差。 7.数据库 java.sql.driver java.sql.drivermanager加载驱动程序 java.sql.conion表示数据库连接对象,对数据库一切操作都在这个基础上 java.sql.statement执行sql语句和返回结果 java.sql.resultset结果集用来暂时存放数据库查询操作结果 8.编写程序的步骤 1.装载驱动程序 class.forname(.mysql.jdbc.driver) 2.定义所需连接数据库的地址 stringmysqlurl=jdbc.mysql:/host:port/dbname 3.建立与数据库的连接 connectionconn=drivermannager.getconnection(url,登录数据库用户名, 密码) 4.声明并执行sql语句 5.处理返回的结果 6.关闭对象 stringdriverstr=.mysql.jdbc.driver stringconnstr=jdbc:mysql:/localhost:3306/book; classforname(driverstr) connectionconn=drivermanager.getconnection(connstr.root.123)第4步:建立语句对象 statementstmt=conn.createstatement() 第5步:声明并执行sql语句 stringsql=select*frombook; resultsetrs=stmt.executequery(sql); 第6步: statement接口的3个方法:1、resultsetexecutequery(stringsql) 2、intexecuteupdate(stringsql) 3、booleanexecute(stringsql) resultset的方法:1、booleannext() 2、getxxx() 第7歩:rs.close()stmt.close()con.close() 注:关闭资源的顺序与打开资源顺序恰好相反。 第8步:异常处理 try.catch(sqlexecptionex). 9.javabean组件(可重用) 组件:是一个独立的模块,外界可以不了解内部如何实现,只需通过其提供的接口对组件进行访问即可,组件可重用。 特点:1、实现代码重复使用;2、易编写,易维护,易使用。 10.javabean类的编码约定 1、类实现了java.io.serializable接口 2、必须放在某个package(包)中 3、类中如果有构造方法,那么这个方法是共有的,并且无参数 4、所有属性都是私有的(private修饰) 5、getxxx:用来获取属性,此方法是共有的 6、setxxx:用来设置属性,此方法是共有的 7、对于boolean类型的成员变量允许使用“is”代替“get”和“set” 8、类中的普通方法不适合上面的命名规则,但这个方法必是public的。 3个标记: 网页中创建javabean实例 用于为bean中的属性赋值 用于获取bean中属性的值 id=”javabean实例名”class=”javabean对应的类名”设置的属性 获取javabean实例指令的属性值,并将这个值转换成字符串显示到jsp页面。 11.servlet的生命周期 (1)当客户第一次请求servlet时,servlet被加载到内存容器会创建servlet实例,并调用其init()方法进行初始化工作。 (2)容器创建请求对象,然后调用servlet的service()方法为客户提供服务。 (3)当servlet不再被需求时,容器调用servlet的destory()方法将servlet实例销毁。 12.servlet开发 引入import.javax.servlet.*和import.javax,servlet.*包 13.servlet过滤器 servlet过滤器是一种java组件,它位于客户端和处理程序之间 servlet过滤器工作原理 14.model1和model2 model1:jsp+javabean model2:jsp+servlet+javabean model1中,jsp页面实现页面显示、业务逻辑和流程控制,数据处理由javabean完成。 优点:进行快速和小规模的应用开发时优势非常明显。 缺点:不利于web应用的扩展和更新;调试和排错困难。 model2中,mvc模式-模型-视图-控制器.即把web应用的输入输出和处理流程按照model.view和controller分成三层。 model1和model2的区别: model1和model2实际上就是对采用jsp技术开发的web应用的不同模型的描述。model1采用jsp+javabean技术开发web应用,它比较适合小规模应用的开发,效率较高,易于实现,但由于在jsp页面中内嵌了大量的java代码,以至于当业务逻辑复杂时,代码可维护性、可扩展性和可重用性就会下降;model2采用jsp+servlet+javabean技术开发web应用,该模型基于mvc模式,完全实现了页面显示和逻辑的分离,它充分利用了jsp和servlet两种技术的优点,jsp更适合前台页面的开发,而servlet更擅长服务器端程序的编写,model2分工明确,更适合大型项目的开发和管理。 视图(view)用于与用户交互,可以用html.jsp实现。 15.模型(model)用于表示业务数据和实现业务逻辑,可以用javabean实现控制器(controller)完成流程控制,它接收视图层用户输入的数据,并调用相应的模型进行处理,最后选择合适的视图去响应用户。控制层可以用servlet实现。 优点:mvc模式完全实现了页面表示和业务逻辑的分离; mvc优势之一在于三层各司其职,互不干涉。 缺点:没有明确的定义。 模型层为javabean,实现了数据的表示和业务逻辑,视图层为jsp页面,只负责显示功能。 控制器为servlet,负责接收用户的请求,设置javabean属性,调用javabean完成业务处理,最后将处理结果交给jsp页面显示。 16.自定义标签 对隐式对象的操作、处理表单、访问数据库及其他企业级服务。 自定义标签种类: 1.不带有属性和标签体: 2.带有属性没有标签体的标签: 3.带有属性带有标签体:mybody 17.el表达式 基本语法$expr 功能:对属性对象的简明访问:$user 对属性对象的属性访问:$customer.firstname 对属性集合元素的访问:对数组和list:$variableindex对map:$variablekey 对请求参数cookie等的简单访问. 请求参数$param.custid cookie对象:$cookie.usercookie 18.操作符和操作符 $user.address=$useraddress 访问数组和集合元素,需使用 $=$class0name $param.username=%=request.getparameter(username)% 19.与使用存在差异 1.当访问的数据中包含一个特殊字符(如:.或_时),就必须用操作符 2.当动态取值时必须使用操作符,.操作符只能取到静态的值 注:当操作符中的属性名为常量时必须用引起,否则将会当做变量来处理. 20.sql标签 1.标签 2.执行数据库查询 3.执行数据库更新 4.和指明参数值 5.用于事务处理 21.tomcat的目录结构及描述: bin放置启动和关闭tomcat的可执行文件和批处理文件 mon放置在此目录中的jar、class文件,可以被此服务器下所有的web应用使用 conf放置tomcat的主要配置文件 logs放置tomcat的日志文件 server放置tomcat管理接口的应用 src放置tomcat相关的源代码 temp放置tomcat临时文件 webapps放置tomcat应用的目录 work放置jsp页面翻译成对应的servlet类的目录 javaweb总结 一 servlet的继承层次很多,但是我们web开发常用的也就是javax.servlet.servlet这个类,我们常用的两个请求方法是doget(),dopost(),还有从父类继承过来的方法init()初始化,destroy()servlet销毁时会被调用,getservletconfig()获得servletconfig对象,getservletinfo()返回有关servlet的信息,包括作者、servlet版本等。 servlet的访问必须在web.xml,怎么配置会在下面举例。常用方法: 1、request.setcharacterencoding(utf-8);/设置用post传递给服务器的参数编码方式 2、response.setcontenttype(text/html;charset=utf-8);/设置发送给浏览器的内容编码 3、sessionsession=request.getsession();/获得session会话session.setattribute(a,b);/给session作用域中存值可以这样取值:session.getattribute(a); 4、servletcontextcontext=this.getservletcontext();整个web应用对象,或者用servletconfig对象.getservletcontext()获得 stringstr=context.getinitparameter(encoding);/获得全局参数 5、servletconfigconfig=this.getservletconfig(p1);/获

温馨提示

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

评论

0/150

提交评论