综合文件第二章_第1页
综合文件第二章_第2页
综合文件第二章_第3页
综合文件第二章_第4页
综合文件第二章_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

webhttphttpHttpServletRequest对HttpServletResponsehttpURLservletservice方serviceHttpServletResponse对象作为响应serviceweb容器的缓冲区。web容器会将缓冲区中的响应消息会送给web客户端。如最经典的404状态码:http1.1404HttpServletResponse提供了两种写入消息正文的方式。PrintWriterPrintWriteroutresponse.getWriter();ISO8859-1ISO8859-1并不包含中文编码,因此如果向消息1、voidsetStatus(int过voidsetStatus(intcodeservlet没有使用或者不支持输出缓冲区,那么就一定要在调用其他可产生客户端输出setStrutsservlet使用了输出缓冲区,也必须在输出缓冲区的内容尚被实际发送到客户端之前调用setStruts方法设置状态码。2、sendErrorvoidsendError(intvoidsendError(intcode,StringServletResponseHttpServletResponsehttp响应消息中的setIntHeader、setDateHeader等方法。用来设置一些常用的或者日期、整数数据的响应头。addHeadersetHeader1、addHeardersetHeaderaddHearer与setHeardervoidvoidaddHeader(Stringname,Stringvalue);voidsetHeader(Stringname,Stringvalue);2、addHeadersetHeader点击Add按钮弹出如下窗口:packagepackagecn.taotao.servlet;importimportjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;initParams={@WebInitParam(name"name",value陶陶{ServletException,ServletException,{}}@WebInitParam(name"name",value陶陶其中:urlPatterns@WebInitParam(name"name",value陶陶protectedvoidservice(HttpServletRequestrequest,HttpServletResponseprotectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringname=this.getInitParameter("name");}Stringname=this.getInitParameter("name");Stringname=this.getInitParameter("name");这等同于使用response.redirect方法:response.redirect(“newpath/newpage.jsp”)response.setDateHeader("expires",0);response.setDateHeader("expires",0);voidsetIntHeadeR(Stringname,intvalue)publicvoidsetDateHeader(Stringname,long不需调用此函数来设置响应实体的大小。Servlet引擎会在向客户端输出响应内容时自动设setContentTypeservletMIME(multipurposeInternetMailExtension,多用途internet邮件扩展)类型。法来替换setHeader方法的第一参数为“content-type”的调用。据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。webMIMEGIFMIMEjsonxml <atype="application/pdf"href="032016年秋季交叉课课表.pdf">pdftest.htmlWebContent路径下存储一个“03信息=if{=if{=}{byte[]b=newbyte[1024];intc= resp.setHeader("Content-Disposition","attachment;filename*=UTF-8''"} }out.write(b,0,}}chengzhendibao.xls来保存或打开响应正文中的response实现文件下载”这一节中讲解。setCharacterEncodinghttp协议来说,Content-TypeSetvletResponse.getWriter方法返回setContentTypesetContentType设置的字符我们可以利用消息响应头来指定浏览器采用何种字符集显示响应消息正文。Servlet引口中定义了两个方法:getOutputStream与getWrite方法。getWriterServlet引擎创建的字符输出流对象,Servlet程序可以按字符形getOutputStreamServletOutputStream,它可以直write(byte[]b,intbegin,int返回,PrintWriter对象可以直接输出字符文本内容。Servlet程序向ServletOutputStreamPrintWriterServlet引擎获正文。尽管如此,servletServletOutputStreamPrintWriter对象Content-type头字段。Serlvetservice方法结束后,ServletgetWritergetOutputStream方法返close方法,如果没有,Servletclose方法关闭ServletOutputStreamPrintWriter对象之后,调用close方法,以便尽快释放相关资源。ServletgetWritePrintWrite对象。同样{{ServletException,IOException{//TODOAuto-generatedmethodstubPrintWriterout1=response.getWriter();PrintWriterout2=response.getWriter();if(out1=={}{}}}servletHTTP234reset户端输出过部分内容,这个方法将会抛出IllegalStateException异常。URL地址指向一个文件,用户单击该servlet程序仅仅将文件内容传递给浏览器是不HTML文件,而是一个要保存到本地的下载文件。即将内容的MIME类型设置为“application/x-msdownload”。代码如下:2HttpServletResponse.setHeader()方法设置content-disposition头的值为“attachment:filename=文件名”content-dispositionfileName=.URLEncoder.encode(fileName,"UTF-8");fileName=.URLEncoder.encode(fileName,"UTF-8"); } }Filefile=newFile(filePath);//打开文件FileInputStreamfisnewFileInputStream(file);byte[]b=newbyte[1024];intFilefile=newFile(filePath);//打开文件FileInputStreamfisnewFileInputStream(file);byte[]b=newbyte[1024];intc=fileName=.URLEncoder.encode(fileName,"UTF- } resp.setHeader("content-disposition","attachment;filename="+}{out.write(b,0,}{privatestaticfinallongserialVersionUID={privatestaticfinallongserialVersionUID=ServletException,IOException{=ifif{}{byte[]b=newbyte[1024];intc=法.doc","UTF-8"); response.setHeader("Content-Disposition","attachment;8''"+} }{out.write(b,0,}}}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,}}(1)不论是文件还是目录都使用File类操作;的属性;比如文件名。下面让我们开始File的学习。File文件名/newFile("文字路径字符串Java中提供了几种创建文件及目录的构造方法,但大体上都是用参数中的文字路径字判断File在StringStringStringStringlonglongpublicvoiddirectory{publicvoiddirectory{FileFilefilenewFile("D:\\我代的课");if(file.isDirectory()){}}publicvoidpublicvoid{FilefilenewFile("D:\\我代的课\\031320123.doc");if(file.isFile()){}}boolean{FilefilenewFile("D:\\我代的课\\{FilefilenewFile("D:\\我代的课\\中国万岁.doc");if{}{}}newFile(文件名或文件夹名)File对象。然后需要判publicvoid{if(file.exists()){}}String[]File[]publicvoid{FilefilenewFile("D:\\我代的课\\信息工程学院\\计算机系publicvoid{FilefilenewFile("D:\\我代的课\\信息工程学院\\计算机系\\K0315415");}publicpublicvoid{FilefilenewFile("D:\\我代的课");if(file.isDirectory()){for(Stringname:names){}}}listFiles()File对象数组。这个函数用的最多。publicpublicvoid{FilefilenewFile("D:\\我代的课");File[]files=file.listFiles();{if{}elseif{Stringfilename=f.getName();}}}publicvoid{Filefile=newFile(string);Scannersin=newSystem.out.println("你确定要删除string1intc=sin.nextInt();if(c!=1){}}publicvoiddeleteFile(File{if{if{{}elseif{for(Filef:files){}}}}底层操作系统的默认编码方式,例如GBK等。importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;publicclass{publicstaticvoidmain(String[]{FilereadFile=newFile("D:\\湖北民族学院教材建设管理办{}FilewriteFilenewFile("D:\\新文件.doc");}catch(IOException{}{

FileInputStreamfIn=newFileInputStream(readFile);FileOutputStreamfOut=newFileOutputStream(writeFile);byte[]b=newbyte[1024];intcount=while((count=fIn.read(b))!=-{fOut.write(b,0,}}catch(IOException{//TODOAuto-generatedcatchblock}}}listimages(包含了页面中所需要的图片)文件夹拷贝到项目的webContent文件夹下。再刷新页面,则会看到正常的页面了。2)添加处理登录页面提交的Servlet""""""""=""=""/>publicpublicclassLoginServletextends ServletException,{ //TODOAuto-generatedmethodStringpassword=request.getParameter("password");application.setAttribute("username",userName);RequestDispatcherrDispatcher=}}webContentpublic文件夹(必须自己创建)Stringpath=Stringpath=StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; noresize="noresize"id="topFrame"title="topFrame"/> noresize="noresize"id="leftFrame"title="leftFrame" title="rightFrame"/>StringStringpath=StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";;getServerPortbasePath的最终rul前都加上<%=basePath%>,以构成一个绝对路径。避免因为路径问题而出现资源不存在的404错误。另外,可以看到,main.jspframeSetStringpath=StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; $(".navli$(".navli<div title="系统首页"/></a><ul src="<%=basePath%>images/icon01.png"title="工作台"/><h2>工作台</h2></a></li> src="<%=basePath%>images/icon02.png"title="模型管理"/><h2>模型管理</h2></a></li> src="<%=basePath%>images/icon03.png"title="模块设计"/><h2>模块设计</h2></a></li> src="<%=basePath%>images/icon04.png"title="常用工具"/><h2>常用工具</h2></a></li> src="<%=basePath%>images/icon05.png"title="文件管理"/><h2>文件管理</h2></a></li> src="<%=basePath%>images/icon06.png"title="系统设置"/><h2>系统设置</h2></a></li><div <divStringpath=StringbasePath=request.getScheme()+"://"+path+"/"; var$ul=}<body<dl<div<ul target="rightFrame">2017年秋上课文件</a><i></i></li><liclass="active"><cite></cite><ahref="right.htmltarget="rightFrame">数据列表<li><cite></cite><ahref="<%=basePath%>imglist.html"target="rightFrame">图片数" target="rightFrame">图片列 自定义" 信息管<div<ul编辑器<ul日期管理<ulpackagecn.taotao.pojo;packagecn.taotao.pojo;{publicStringgetName(){return}{=}{return}}{this.type=}}当前路径为:文档<ahref="GetFilePathServlet?openFlodeh=${}&curPath=${curPath}"><ahref="GetFilePathServlet?openFlodeh=${}&curPath=${curPath}">根目录:由web.xml设置得到importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importcn.taotao.pojo.FileInfomation;publicclassGetFilePathServletextends{privatestaticfinallongserialVersionUID=protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ServletContextapplicationthis.getServletContext();StringrootPath=(String)application.getInitParameter("rootDirectory");Stringextension=(String)application.getInitParameter("extension");StringcurPathrequest.getParameter("curPath");StringopenFloderrequest.getParameter("openFloder");if(null!=curPath){filePath= +}if{filePath=filePath+"\\"+openFloder;if(null==curPath){curPath=}{curPath=curPath+"\\"+}}request.setAttribute("curPath",curPath);Filefile=newFile(filePath);//创建目录File[]listF=file.listFiles();List<FileInfomation>dl=newArrayList<FileInfomation>();List<FileInfomation>fl=newArrayList<FileInfomation>();if(listF==null||listF.length==0){}{

for(Filef1:listF){"+}StringfileName=f1.getName();Stringprefix=fileName.substring(fileName.lastIndexOf(".")+1);FileInfomationff=newFileInfomation();{}}}request.setAttribute("fl",}}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}FILEFileInfomationlistFileInfomationnew。因为list集合中实际上存储只是这些对象的引用,即对象的地址。jsp的标签,所以需要将jstl-1.2.jarjarWEB-INFlib目录下。StringStringpath=StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<div<ul<li><ahref="#">首页<li><ahref="#">模块设计<li><ahref="#">图片<div<div<ul<ul<ul<li

<div<ul<liclass="paginItemmore"><a<div<div<span><imgsrc="images/ticon.png"<div<div<div<inputname=""type="button"class="sure"value="确定<inputname=""type="button"class="cancel"value="取消importjava.io.File;importjava.io.IOException;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;{privatestaticfinallongserialVersionUID=StringfilePath=rootPath;if{filePath=filePath+curPath+"\\"+}{filePath=filePath+}FilefilenewFile(filePath);//打开文件if(!file.exists()){}{

rDispatcher.forward(request,response);FileInputStreamfis=newFileInputStream(file);byte[]b=newbyte[1024];intc= } }out.write(b,0,}}}doGet(request,response);}}文件路径,根据文件路径和文件名。读出文件,写入到ServletOouputStream流中。servlet程序中,有时需要调用另一个资源来对浏览器的请求进行响应,这可以通过HttpServletResponse.sendRedirect方法来实现请求重定向。RequestDispatcherServlet引擎创建,用于包装一个要被其他资源调用的资源,include两种)将请求转发给所包装的资源。include(ServletRequestrequest,ServletResponseServletResponseinclude(ServletRequestrequest,ServletResponse序的根目录。WEB-INFRequestDispatcher也是可见的。所以传递给RequestDispatcherwebforwardweb应用程序中每个页面都有相同的导航菜单,相同的页面底部。在htmljsp页面中,然后在其他页面中用include包含资源来实现的。注意:使用include于导航条的叫head.html的文件。让另一个名叫IncludeServletservlet包含它。<title>Inserttitle/*Nav.NavM{width:100%;.NavMConulli{height:29px;float:left;padding:11px10px010px;background:url(http://p1.if/ifeng/ifeng-index/20160122/spritesize47_w1000_h2000.png)no-repeat0-100px;}/*160420a*/.NavMConulli.TV{padding:11px0px012px;.NavMConulli.PTV{padding:12px0px012px;background:none; index/20160122/spritesize47_w1000_h2000.png)no-repeat-300px-212px;display:block;.NavMConulli.PTVa{background:url(/ifeng/ifeng-index/20160520/spritesize47_w1000_h2000.png)no-repeat-465px-214px;display:block;padding-left:23px;font-family:Arial;font-size:14px}/*160520a*//*Nav<div<divclass="wrap<ul<!--160420abegin--<!--160420aend--""<!--160520abegin--<liclass="PTV"><ahref="/english.shtml"target="_blank">PHOENIX<!--160520aend--packageimportimportjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importpackageimportimportjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;**ServletimplementationclasspublicclassIncludeServletextends*@seeHttpServlet#service(HttpServletRequestrequest,HttpServletResponseServletException,IOException{//TODOAuto-generatedmethodstubdispatcher.include(request,response);}}htm

温馨提示

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

评论

0/150

提交评论