内蒙古科技大学:《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>图像效果 编译并运行该程序,如有错误请改正
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验1 Java 运行环境的安装、配置与运行.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验16 网络编程.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验2 Java基本语法练习.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验3 数组和字符串.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验5 类与对象——继承和多态.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验4 类与对象——封装和构造函数.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验6 接口.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验7 异常处理.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验8 输入输出流.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验9 图形用户界面(1)GUI 基础.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验11 图形用户界面(3)事件处理.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验10 图形用户界面(2)图形.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验12 图形用户界面(4)JScrollPane和JTabbedPane.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验13 图形用户界面(5)菜单、工具栏和对话框.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验14 数据库连接.doc
- 内蒙古科技大学:《Java编程》课程教学资源(实验指导)实验15 多线程.doc
- 内蒙古科技大学:《Java编程》课程教学资源(授课教案)第一章 Java语言概论.doc
- 内蒙古科技大学:《Java编程》课程教学资源(授课教案)第二章 Java程序设计基础.doc
- 内蒙古科技大学:《Java编程》课程教学资源(授课教案)第三章 数组与字符串.doc
- 内蒙古科技大学:《Java编程》课程教学资源(授课教案)第四章 类与对象.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十六 基于会员制的网络广告系统.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十四 基于会员制的网络广告系统.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十三 基于会员制的网络广告系统.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十一 通过JSP页面调用Servlet.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十二 Servlet会话管理.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验九 数据库编程技术.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验十 分页显示记录.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验七 JSP与Javabean结合.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验八 连接数据库.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验五 JSP内置对象.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验六 JavaBean.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验三 JSP语法指令标记.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验四 JSP内置对象.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验二 JSP语法指令标记.doc
- 内蒙古科技大学:《JSP编程》课程教学资源(实验指导)实验一 安装与配置JSP环境.doc
- 内蒙古科技大学:《JSP编程》课程教学课件(PPT讲稿)第6章 JavaServlet技术.ppt
- 内蒙古科技大学:《JSP编程》课程教学课件(PPT讲稿)第4章 JavaBean.ppt
- 内蒙古科技大学:《JSP编程》课程教学课件(PPT讲稿)第5章 在JSP中使用数据库.ppt
- 内蒙古科技大学:《JSP编程》课程教学课件(PPT讲稿)第2章 JSP语法.ppt
- 内蒙古科技大学:《JSP编程》课程教学课件(PPT讲稿)第3章 JSP内置对象.ppt