中国高校课件下载中心 》 教学资源 》 大学文库

内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十五 基于会员制的网络广告系统

文档信息
资源类别:文库
文档格式:DOC
文档页数:6
文件大小:55KB
团购合买:点击进入团购
内容简介
内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十五 基于会员制的网络广告系统
刷新页面文档预览

实验15上传产品照片 一、实验目的 1熟练掌握fom表单的应用 2.熟练掌握文件上传的流程。 3.掌握在mv心下的开发模式 二、实验要求 1,完成完整html上传页面upload.jsp。 2.实现跳转后servlet页面,HandIeUpload,.java。 3.bean页面UploadFile,java。 4.显示上传页面showUploadMcss.jsp 三、实验内容 ·编写html页面upload.jsp,源代码如下 page contentType=text/html:charset-GB2312"> KHTML>KHEAD> BR》文件将被上传到D:\anache- toncat-5.5.20\wchanns\chlo\image B>选择要上传的图像照片文件(名字不可以含有非ASC1码字符,比如汉字等 </FontX/BODYX/HmL ·编写servlet页面HandleUpload,java,源代码如下 package myservlet.control: imort mybean.data.*: import java.sql.*: import java.io.+ import javax.servlet.* import javax.servlet.http.* public class HandleUpload extends HttpServlet public void init(ServletConfig config)throws ServletException super.init(config): try Class.forName(.sqlserver.jdbe.SQLServerDriver)

实验 15 上传产品照片 一、实验目的 1. 熟练掌握 form 表单的应用。 2. 熟练掌握文件上传的流程。 3. 掌握在 mvc 下的开发模式。 二、实验要求 1. 完成完整 html 上传页面 upload.jsp。 2. 实现跳转后 servlet 页面,HandleUpload.java.。 3. bean 页面 UploadFile.java。 4. 显示上传页面 showUploadMess.jsp。 三、实验内容  编写 html 页面 upload.jsp,源代码如下。 文件将被上传到 D:\apache-tomcat-5.5.20\webapps\ch10\image 中。 选择要上传的图像照片文件(名字不可以含有非 ASCII 码字符,比如汉字等):  编写 servlet 页面 HandleUpload.java,源代码如下: package myservlet.control; import mybean.data.*; import java.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HandleUpload extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }

catch(Exception e) 1 public void doPost(,pServletResponse response throws ServletException,IOException HttpSession session=request.getSession(true): Login login=(Login)session,getAttribute("login):/获取用户登录时的Javabear boolean ok=true: ok=false: response.sendRedirect("login.jsp"): /重定向到登录页面 if (ok==true) String hod(request,response,logname) 1/接受上传文件 public void uploadFileMethod(HttpServletRequest request,HttpServletResponse response String logname)throws ServletException.IOException String backNews= try HttpSession session=request.getSession(true) request.setAttribute("upFile",upFile): String tempFileName=(String)session.getld File fl-new File( InputStrean in=request.getInputStream(); byte bn=new byter10000]: int n while((n=in.read(b))!=-1) o.write(b,0,n) o.close(: in.close() int second=1 /读出1的第2行,析取出上传文件的名字 String secondLine=null while(second<=2) secondLine=random readLine(): second++ /获取第2行中目录符号八最后出现的位置 int position=secondLine.last Indexof('\) /载取文件名: String fileName=secondline.substring(position+l.secondLine.length()-1):

catch(Exception e){} } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { HttpSession session=request.getSession(true); Login login=(Login)session.getAttribute("login"); //获取用户登录时的 Javabean boolean ok=true; if(login==null) { ok=false; response.sendRedirect("login.jsp"); //重定向到登录页面 } if(ok==true) { String logname=login.getLogname(); uploadFileMethod(request,response,logname); //接受上传文件 } } public void uploadFileMethod(HttpServletRequest request,HttpServletResponse response, String logname) throws ServletException,IOException { UploadFile upFile=new UploadFile(); String backNews=""; try{ HttpSession session=request.getSession(true); request.setAttribute("upFile",upFile); String tempFileName=(String)session.getId(); File f1=new File(tempFileName); FileOutputStream o=new FileOutputStream(f1); InputStream in=request.getInputStream(); byte b[]=new byte[10000]; int n; while( (n=in.read(b))!=-1) { o.write(b,0,n); } o.close(); in.close(); RandomAccessFile random=new RandomAccessFile(f1,"r"); int second=1; //读出 f1 的第 2 行,析取出上传文件的名字: String secondLine=null; while(second<=2) { secondLine=random.readLine(); second++; } //获取第 2 行中目录符号'\'最后出现的位置: int position=secondLine.lastIndexOf('\\'); //截取文件名: String fileName=secondLine.substring(position+1,secondLine.length()-1);

byte cc[]=fileName.getBytes("IS0-8859-1): fileName=new String(cc): aceA11(, String checkedStr=fileName.substring(0,fileName.indexof (")) boolean isletterOrDigitstrue: for(int i=0:i=0)(j<=6))

byte cc[]=fileName.getBytes("ISO-8859-1"); fileName=new String(cc); fileName=fileName.replaceAll(" ",""); //文件是否由字母或数字组成判断名字 String checkedStr=fileName.substring(0,fileName.indexOf(".")); boolean isLetterOrDigit=true; for(int i=0;i='a')||(c='A')||(c='0'))) { isLetterOrDigit=false; break; } } if(isLetterOrDigit==false) { response.sendRedirect("upload.jsp"); //重定向到 upload.jsp 页面 } //保存文件名是上传文件名加会员名为前缀: String savedFileName=logname.concat(fileName); random.seek(0); long forthEndPosition=0; //获取第 4 行回车符号的位置 int forth=1; while((n=random.readByte())!=-1&&(forth=0)&&(j<=6))

{ark一: rando.seek (mark) n=rando readByte( if(n='\n') endPosition=random.getFilePointer ( j+: random.sek(forthEndPosition) long startPoint=random.getFilePointer( while(startPoint<endPosition-1) n=randon.readByte( startPoint=rando getFilePointer() random2.close( random close( :.:: Con n-DriverMan ager.get ction(uri,"sa,sa Statement sql-con.createStatement( ResultSet rs=sal,executeQuery("SELECT FROM member where logname 1”+10gnae+*n: if(rs.next() {if(isLetterOrDigit) (int msql.executeUpdate(UPDATE member SET pic= where logname= +lognane+"): 1f(mm1-0) {backNews=fileNane+"成功上传 upFile.setFileName(fileName) upFile.setBackNews (backNews) 1 con.close( fl.delete() catch(Exception exp) {backNewsa="“texD upFile.setBackNews(backNews) try{RequestDispatcher dispatcher= request.getRequestDispatcher("showUploadMess.jsp"):// dispatcher.forward(request,response):

{ mark-; random.seek(mark); n=random.readByte(); if(n=='\n') { endPosition=random.getFilePointer(); j++; } } random.seek(forthEndPosition); long startPoint=random.getFilePointer(); while(startPoint<endPosition-1) { n=random.readByte(); random2.write(n); startPoint=random.getFilePointer(); } random2.close(); random.close(); String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Friend"; Connection con=DriverManager.getConnection(uri,"sa","sa"); Statement sql=con.createStatement(); ResultSet rs=sql.executeQuery("SELECT * FROM member where logname = '"+logname+"'"); if(rs.next()) { if(isLetterOrDigit) { int mm=sql.executeUpdate("UPDATE member SET pic= '"+savedFileName+ "' where logname = '"+logname+"'"); if(mm!=0) { backNews=fileName+"成功上传"; upFile.setFileName(fileName); upFile.setSavedFileName(savedFileName); upFile.setBackNews(backNews); } } } con.close(); f1.delete(); } catch(Exception exp) { backNews=""+exp; upFile.setBackNews(backNews); } try{ RequestDispatcher dispatcher= request.getRequestDispatcher("showUploadMess.jsp");//转发 dispatcher.forward(request, response);

catch(Exception ee) public void dGet(request,HttpServletResponse response) throws ServletException,10Exception doPost(request,response); ·编写bean页面UploadFile,java,源代码如下 package mybean.data: public class UploadFile String fileName,savedFileName fileName=name } public String getFileName() freturn fileName public void setSavedFileName(String nane (savedFileName-name: public String getSavedFileName( (return savedFileName public String getBackNews( return backNews public void setBackNews(String s) 编写显示页面showUploadMess.jsp,源代码如下 page contentType=text/htl:charset-B231 pag 1p0 ean.data. HTMLX 上传的文件名字:

} catch(Exception ee){} } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } }  编写 bean 页面 UploadFile.java,源代码如下: package mybean.data; public class UploadFile { String fileName,savedFileName, backNews=""; public void setFileName(String name) { fileName=name; } public String getFileName() {return fileName; } public void setSavedFileName(String name) { savedFileName=name; } public String getSavedFileName() {return savedFileName; } public String getBackNews() { return backNews; } public void setBackNews(String s) { backNews=s; } }  编写显示页面 showUploadMess.jsp,源代码如下: %@ page contentType="text/html;charset=GB2312" %> 上传的文件名字: 保存后的文件名字:

idth=l50 height=120>图像效果 ·编译并运行该程序,如有错误请改正

width=150 height=120>图像效果  编译并运行该程序,如有错误请改正

已到末页,全文结束
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档