精华内容
下载资源
问答
  • javaweb上传图片

    热门讨论 2013-03-23 22:03:58
    javaweb开发上传图片到服务器以及保存图片路径.
  • Javaweb上传图片途径到数据库

    千次阅读 多人点赞 2018-11-11 20:17:19
    Javaweb上传图片途径到数据库 结果如下 首先建立数据库存放上传图片路径数据库属性用varchar(),大小差不多设置为 255。 数据库连接在这里就不多说了 jsp页面 <body> <form action=&...

    Javaweb上传图片途径到数据库

    结果如下

    首先建立数据库存放上传图片路径数据库属性用varchar(),大小差不多设置为 255。

    数据库连接在这里就不多说了

    jsp页面

    <body>
    	<form action="${pageContext.request.contextPath}/uppicture" method="post"  enctype="multipart/form-data" >
    	 昵称:<input type="text" name="name"><br>
                <div>
                 	 <img src="${image_path}" width="200" height="200">
                 </div>
                  头像:<input type="file" name="uploadFile"> 
            <input type="submit" value="上传头像"/>
       </form>

    Dao.java添加到数据库add方法

    package com.picture.dao;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import com.imooc.db.DButil;
    import com.picture.Bean.Picture;
    public class Dao {
    	private Connection conn;
    	private PreparedStatement ps;
    	public void add(Picture picture){
    		
            try {
            	conn=DButil.getConnection();
                String sql="insert into picture_2(name,picturepath)"+" values (?,?)" ;
    			ps=conn.prepareStatement(sql);
    			ps.setString(1,picture.getName());
    			ps.setString(2,picture.getPicturepath());
    			  ps.execute();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
          
    	}
    	
    }
    

    upServlet.java,Servlet文件处理数据

    package com.picture.servlet;
    import com.picture.Bean.Picture;
    import com.picture.dao.Dao;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Calendar;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletInputStream;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    /**
     * Servlet implementation class upServlet
     */
    //@WebServlet("/upServlet")
    public class upServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        
        
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//通知客户端以utf-8编码进行解析
    		       
    				response.setContentType("text/html;charset=utf-8");
    				//数据库以UTF-8编码解析数据
    				request.setCharacterEncoding("UTF-8");
    				
    				String name=null;
    			
    			    Picture picture=new Picture();
    			    Dao dao=new Dao();
    				//判断请求是否为multipar请求
    				if(!ServletFileUpload.isMultipartContent(request))
    				{
    					throw new RuntimeException("当前请求不支持文件上传");
    				}
    				//为基于磁盘的文件项创建一个FileItem工厂
    				DiskFileItemFactory factory = new DiskFileItemFactory();
    				//设置临时文件的边界值,大于该值时,上传文件会先保存在临时文件中,否则,上传文件将直接写入到内存
    				//单位:字节,设置边界值1M,一字节=1024M;
    				factory.setSizeThreshold(1024*1024*1);
    				//设置文件临时储存
    				String temppath=this.getServletContext().getRealPath("/temp");
    				File temp=new File(temppath);
    				factory.setRepository(temp);
    				//创建一个新的文件上传处理程序
    				ServletFileUpload upload = new ServletFileUpload(factory);
    				//设置每一个item的头部字符编码,其可以解决文件名中文乱码问题;
    				upload.setHeaderEncoding("UTF-8");
    				//设置单个文件的最大边界值(这里是2M)
    				upload.setFileSizeMax(1024*1024*2);
    				//设置一次上传所有文件总和的最大值(对上传多个文件起作用,这里最大为5M)
    				upload.setSizeMax(1024*1024*5);
    				//解析请求,获取所有的item
    				try {
    				//
    					//调用ServletFileUpload.parseRequest方法解析request对象,
    					//得到一个保存了所有上传内容的List对象。
    				List <FileItem> items = upload.parseRequest(request);
    				//遍历
    				for(FileItem item:items){
    				//若item为普通表单项
    					if(item.isFormField()){
    					//获取表单中属性名称
    					String fieldName = item.getFieldName();
    					if(fieldName.equals("name")){
    					//获取表单属性的值
    					 name=item.getString("UTF-8");
    					}
    					System.out.println(fieldName+"="+name);
    				//若	item为文件表单项
    					}else{
    					//获取文件大小
    					long size=item.getSize();
    					//获取文件类型
    					String contentType = item.getContentType();
    					//获取上传文件原始名字
    					String fileName = item.getName();
    					System.out.println("文件大小:"+size);
    					System.out.println("文件的类型:"+contentType);
    					//System.out.println("文件的名称:"+fileName);
    				    //获取文件名,处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    					if(fileName.contains("\\"))
    		            {
    		                //如果包含则截取字符串
    						fileName=fileName.substring(fileName.lastIndexOf("\\")+1);
    		            }
    					//设置文件名,因为同名的文件会覆盖,所以要修饰文件名,设置毫秒+文件名
    					fileName=System.currentTimeMillis()+fileName;
    					System.out.println("文件的名称:"+fileName);
    					//获取输入流,其实有上传文件的内容
    					InputStream inputStream = item.getInputStream();
    					
    					//String parent=this.getServletContext().getRealPath("./images");
    					String path="E:\\picture-up";
    					File dirFile=new File(path);
    					if(!dirFile.exists()){
    						//创建多级目录mkdirs()
    						dirFile.mkdir();
    					}
    					//创建目录文件,将来用于保存上传文件
    					File file = new File(path, fileName);
    					//创建文件输出流
    					OutputStream os=new FileOutputStream(file);	
    					//把输入流中的数据写入到输出流
    					int len=0;
    					byte[] buf=new byte[1024];
    					while((len=inputStream.read(buf))!=-1){
    						os.write(buf, 0, len);
    					}
                       //图片上传到之后的路径
    					path="E:\\picture-up"+"\\"+fileName;
    					picture.setName(name);
    					picture.setPicturepath(path);
    					System.out.println(picture.getName()+"----"+picture.getPicturepath());
                       //调用Dao中的add()方法
    					dao.add(picture);
    					os.close();
    					inputStream.close();
    					//删除临时文件
    					item.delete();
    					}
    				}	
    					
    				} catch (FileUploadException e) {
    					
    					e.printStackTrace();
    				}
    			}
    
    	}
    
    
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>picture-up</display-name>
      <servlet>
      		<servlet-name>uppicture</servlet-name>
      		<servlet-class>com.picture.servlet.upServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      		<servlet-name>uppicture</servlet-name>
      		<url-pattern>/uppicture</url-pattern>
      </servlet-mapping>
    </web-app>

    好了,希望能帮到你们

     

    展开全文
  • Javaweb上传图片到阿里云oss服务器

    千次阅读 2019-12-01 18:49:39
    网站实现上传图片到oss对象存储 应用示例:用户头像更换 欢迎访问个人博客点击访问 可回答问题下载资源 网上很多方法是将上传的头像存在项目的根目录下,但是时间长了肯定影响项目的运行速度。 阿里云的oss和...

    网站实现上传图片到oss对象存储

    应用示例:用户头像更换

    欢迎访问个人博客  点击访问  可回答问题下载资源

    网上很多方法是将上传的头像存在项目的根目录下,但是时间长了肯定影响项目的运行速度。

    阿里云的oss和腾讯云的cos提供了对象存储服务,而且价格不贵,企业开发者和个人开发者都适合

    本篇介绍的是阿里云的oss对象存储。

    第一步

    申请阿里云账号,登录账号后找到oss对象存储。

    阿里云的对象存储是需要自己购买的,40G一年的空间只需要9块钱,40G的存储空间能满足大多数个人开发者的需求啦,对于企业可以选择更高存储容量的。

    第二步

    购买完存储容量后就需要设置Bucket,就相当于设置一个存储盘,在bucket中可以新建文件夹。阿里云和腾讯云都提供了对象存储的开发文档,写的都很详细。阿里oss文档    腾讯cos文档

    接下来就是前端样式和后端代码

    前端样式

    上传头像的界面也已经设计好啦

    样式截图,这是在图书管理系统中的更换头像应用,博客链接:图书管理系统

    下面这个是在手机网站中的界面,原网站是参加软件设计大赛的校园场景识别。网站链接:场景识别

    需要的js文件css文件都放在了这个压缩包里:jscss文件

    也可以进入网站联系群主即可:加群联系群主

    前端代码以及上传图片的限制

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html lang="en">
    
    	<head>
    		<meta charset="UTF-8">
    		<title>Document</title>
    		
    		<script src="head/jquery.min.js"></script>
    		
    		<link rel="stylesheet" type="text/css" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css">
    		<link href="head/cropper.min.css" rel="stylesheet">
    		<link href="head/sitelogo.css" rel="stylesheet">
    		<link rel="stylesheet" type="text/css" href="http://cdn.bootcss.com/font-awesome/4.6.0/css/font-awesome.min.css">
    		
    		<script src="head/bootstrap.min.js"></script>
    		<script src="head/cropper.js"></script>
    		<script src="head/sitelogo.js"></script>
    		
    		<style type="text/css">
    		.avatar-btns button {
    			height: 35px;
    		}
    		</style>
    		
    		
    	</head>
    
    	<body>
    	
    		<button type="button" class="btn btn-primary"  data-toggle="modal" data-target="#avatar-modal" style="margin: 10px;">修改头像</button>
    		
    		<div class="user_pic" style="margin: 10px;">
    			<img src=""/>
    		</div>
    
    		<div class="modal fade" id="avatar-modal" aria-hidden="true" aria-labelledby="avatar-modal-label" role="dialog" tabindex="-1">
    			<div class="modal-dialog modal-lg">
    				<div class="modal-content">
    					<!--<form class="avatar-form" action="upload-logo.php" enctype="multipart/form-data" method="post">-->
    					<form class="avatar-form" action="../../upload" method="post" enctype="multipart/form-data">
    						<div class="modal-header">
    							<button class="close" data-dismiss="modal" type="button">&times;</button>
    							<h4 class="modal-title" id="avatar-modal-label">上传图片</h4>
    						</div>
    						<div class="modal-body">
    							<div class="avatar-body">
    								<div class="avatar-upload">
    									<input class="avatar-src" name="avatar_src" type="hidden">
    									<input class="avatar-data" name="avatar_data" type="hidden">
    									<label for="avatarInput" style="line-height: 35px;">图片上传</label>
    									<button class="btn btn-danger"  type="button" style="height: 35px;" onClick="$('input[id=avatarInput]').click();">请选择图片</button>
    									<span id="avatar-name"></span>
    									<input class="avatar-input hide" id="avatarInput" name="avatar_file" type="file"></div>
    								<div class="row">
    									<div class="col-md-9">
    										<div class="avatar-wrapper"></div>
    									</div>
    									<div class="col-md-3">
    										<div class="avatar-preview preview-lg" id="imageHead"></div>
    										<!--<div class="avatar-preview preview-md"></div>
    								<div class="avatar-preview preview-sm"></div>-->
    									</div>
    								</div>
    								<div class="row avatar-btns">
    									<div class="col-md-4">
    										<div class="btn-group">
    											<button class="btn btn-danger fa fa-undo" data-method="rotate" data-option="-90" type="button" title="Rotate -90 degrees"> 向左旋转</button>
    										</div>
    										<div class="btn-group">
    											<button class="btn  btn-danger fa fa-repeat" data-method="rotate" data-option="90" type="button" title="Rotate 90 degrees"> 向右旋转</button>
    										</div>
    									</div>
    									<div class="col-md-5" style="text-align: right;">								
    										<button class="btn btn-danger fa fa-arrows" data-method="setDragMode" data-option="move" type="button" title="移动">
    							            <span class="docs-tooltip" data-toggle="tooltip" title="" data-original-title="$().cropper(&quot;setDragMode&quot;, &quot;move&quot;)">
    							            </span>
    							          </button>
    							          <button type="button" class="btn btn-danger fa fa-search-plus" data-method="zoom" data-option="0.1" title="放大图片">
    							            <span class="docs-tooltip" data-toggle="tooltip" title="" data-original-title="$().cropper(&quot;zoom&quot;, 0.1)">
    							              <!--<span class="fa fa-search-plus"></span>-->
    							            </span>
    							          </button>
    							          <button type="button" class="btn btn-danger fa fa-search-minus" data-method="zoom" data-option="-0.1" title="缩小图片">
    							            <span class="docs-tooltip" data-toggle="tooltip" title="" data-original-title="$().cropper(&quot;zoom&quot;, -0.1)">
    							              <!--<span class="fa fa-search-minus"></span>-->
    							            </span>
    							          </button>
    							          <button type="button" class="btn btn-danger fa fa-refresh" data-method="reset" title="重置图片">
    								            <span class="docs-tooltip" data-toggle="tooltip" title="" data-original-title="$().cropper(&quot;reset&quot;)" aria-describedby="tooltip866214">
    								       </button>
    							        </div>
    									<div class="col-md-3">
    										<input class="btn btn-danger btn-block avatar-save fa fa-save" type="submit" value="上传头像"/>
    									</div>
    								</div>
    							</div>
    						</div>
    					</form>
    				</div>
    			</div>
    		</div>
    
    		<div class="loading" aria-label="Loading" role="img" tabindex="-1"></div>
    		<script src="head/html2canvas.min.js" type="text/javascript" charset="utf-8"></script>
    		<script type="text/javascript">
    		//做个下简易的验证  大小 格式 
    			$('#avatarInput').on('change', function(e) {
    				var filemaxsize = 1024 * 5;//5M
    				var target = $(e.target);
    				var Size = target[0].files[0].size / 1024;
    				if(Size > filemaxsize) {
    					alert('图片过大,请重新选择!');
    					$(".avatar-wrapper").childre().remove;
    					return false;
    				}
    				if(!this.files[0].type.match(/image.*/)) {
    					alert('请选择正确的图片!')
    				} else {
    					var filename = document.querySelector("#avatar-name");
    					var texts = document.querySelector("#avatarInput").value;
    					var teststr = texts; //你这里的路径写错了
    					testend = teststr.match(/[^\\]+\.[^\(]+/i); //直接完整文件名的
    					filename.innerHTML = testend;
    				}
    			
    			});
    
    			$(".avatar-save").on("click", function() {
    				var img_lg = document.getElementById('imageHead');
    				// 截图小的显示框内的内容
    				html2canvas(img_lg, {
    					allowTaint: true,
    					taintTest: false,
    					onrendered: function(canvas) {
    						canvas.id = "mycanvas";
    						//生成base64图片数据
    						var dataUrl = canvas.toDataURL("image/jpeg");
    						var newImg = document.createElement("img");
    						newImg.src = dataUrl;
    						imagesAjax(dataUrl)
    					}
    				});
    			})
    			
    			function imagesAjax(src) {
    				var data = {};
    				data.img = src;
    				data.jid = $('#jid').val();
    				$.ajax({
    					url: "upload-logo.php",
    					data: data,
    					type: "POST",
    					dataType: 'json',
    					success: function(re) {
    						if(re.status == '1') {
    							$('.user_pic img').attr('src',src );
    						}
    					}
    				});
    			}
    		</script>
    	</body>
    
    </html>

    接下来就是后端,便于理解,后端采用的是servlet接收图片数据,并存储到项目的虚拟路径,然后经过编码上传到oss服务器。

    因为可能涉及到历史头像问题,上传文件名采用随机编码,防止重名替换了原始头像。

    servlet代码

    package userhead;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Enumeration;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.oreilly.servlet.MultipartRequest;
    import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
    import com.oreilly.servlet.multipart.FileRenamePolicy;
    
    /**
     * Servlet implementation class upload
     */
    @WebServlet("/upload")
    public class upload extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	/**
    	 * @see HttpServlet#HttpServlet()
    	 */
    	public upload() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
    	 *      response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		response.getWriter().append("Served at: ").append(request.getContextPath());
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
    	 *      response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		String filename = null;
    		String url = null;
    		String requextip = request.getRemoteAddr();
    		String saveDirectory = this.getServletContext().getRealPath("") + "\\img";
    		File savedir = new File(saveDirectory);
    		if (!savedir.exists())
    			savedir.mkdir();
    		int maxPostSize = 10 * 1024 * 1024;
    		FileRenamePolicy policy = (FileRenamePolicy) new DefaultFileRenamePolicy();
    		MultipartRequest multi;
    		multi = new MultipartRequest(request, saveDirectory, maxPostSize, "UTF-8", policy);
    		Enumeration<String> files = multi.getFileNames();
    		String name = files.nextElement();
    		File f = multi.getFile(name);
    		if (f != null) {
    			filename = f.getName();
    		}
    		InputStream in = new FileInputStream(f);
    		BasicController al = new BasicController();
    		url = al.uploadImageToOSS(filename, in);
    		request.setAttribute("url", url);
    		request.getRequestDispatcher("/upload_head.jsp").forward(request, response);
    		doGet(request, response);
    	}
    
    }
    

    上面这是接收图片的方法,BasicController类即为上传到oss的类

    代码如下

    package userhead;
    
    import com.aliyun.oss.OSSClient;
    import com.aliyun.oss.model.PutObjectRequest;
    import java.io.ByteArrayInputStream;
    import java.io.InputStream;
    import java.net.URL;
    import java.sql.Date;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.UUID;
    import java.util.concurrent.ConcurrentLinkedQueue;
    
    public class BasicController {
    
    	private static String endpoint = "申请的oss区域域名";
    	private static String accessKeyId = "申请的accesskeyid";
    	private static String accessKeySecret = "申请的accesskeysecret";
    	private static String bucketName = "自己创建的bucket名称(大小写要规范)";
    	private static String folder = "自己创建文件夹名称/";
    	private static String key = "http://【bucket名称】.【区域域名】/";
    	public BasicController() {
    	}
    
    	public String uploadImageToOSS(String fileName, InputStream inputStream) {
    
    		OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
    		try {
    			String uuid = UUID.randomUUID().toString().replaceAll("-", "");
    			String[] names = fileName.split("[.]");
    			String name = uuid + "." + names[names.length - 1];
    			ossClient.putObject(new PutObjectRequest(bucketName, folder + name, inputStream));
    			return key + folder + name;
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.err.println(e.getMessage());
    		} finally {
    			ossClient.shutdown();
    		}
    		return null;
    	}
    }

    所需要的jar包,已经放到csdn可直接下载。jar包下载

     

    按照这样就可以实现web应用的图片上传服务器啦

    展开全文
  • 文件上传和下载需要的jar包
  • Javaweb应用图片文件上传并预览,Tomcat服务器存储至磁盘,数据库mysql存储其图片路径
  • Javaweb上传图片成功,但是无法显示

    千次阅读 2020-05-06 08:55:15
    其中有个功能是显示上传图片,之后再显示出来。通过查看D:\JavaEEnew\workpath\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XXX\upload路径发现文件上传成功,但是图片没有显示,通过搜索查阅...

    最近使用SSH框架写了一个Javaweb项目。其中有个功能是显示上传图片,之后再显示出来。通过查看D:\JavaEEnew\workpath\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XXX\upload路径发现文件上传成功,但是图片没有显示,通过搜索查阅资料,最后我发现是配置的问题。解决方案https://blog.csdn.net/java123_PB/article/details/79793675

     

    展开全文
  • javaweb上传图片 之前写过图片上传的案例,但是时间一长就忘了,这次写的这个程序用到了图片的上传,并且能够图文显示,所以写了这篇文章来记录一下。 首先来看下我的项目结构,我写的是房屋发布的信息,图片上传...

    javaweb上传图片

       之前写过图片上传的案例,但是时间一长就忘了,这次写的这个程序用到了图片的上传,并且能够图文显示,所以写了这篇文章来记录一下。

    首先来看下我的项目结构,我写的是房屋发布的信息,图片上传只是其中一部分,但是程序绝对是完整的

    项目我是用Spring+SpringMVC+hibernate框架搭建的

    先看下applicationContext-common.xml里面的文件配置:

    <?xml version="1.0" encoding="UTF-8" ?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
    	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"
    	xmlns:tool="http://www.springframework.org/schema/tool" xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/tool http://www.springframework.org/schema/tool/spring-tool.xsd"
    	default-lazy-init="false" default-autowire="byName">
    
    
    <!-- 数据库链接配置 -->
    	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver">
    		</property>
    		<property name="url" value="jdbc:mysql://localhost:3306/sshkaoshi">
    		</property>
    		<property name="username" value="root"></property>
    		<property name="password" value="DCX5201314"></property>
    	</bean>
    	
    	<!-- AnnotationSessionFactoryBean 注解才使用这个类 -->
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    		<property name="dataSource">
    			<ref bean="dataSource" />
    		</property>
    		<!-- hibernate相关属性配置 -->
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
    				  <prop key="hibernate.show_sql">true</prop> 
    				  <prop key="hibernate.format_sql">true</prop> 
    				   <prop key="hibernate.hbm2ddl.auto">update</prop> 
    			             <!--<prop key="hibernate.autocommit">true</prop>  -->
    			</props>
    		</property>
    		
               <property name="packagesToScan">
    		      <list>
    		        <value>com.*</value>
    		      </list>
    		    </property>
    
    	</bean>
    
    
    	<!--  配置事务3个步骤 1、配置事务管理器 2、配置拦截规则,需要选择事物管理器 3、配置拦截范围,需要选择拦截规则 
      -->
    	<!--  1、事务管理器 
      -->
    	<bean id="txManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
    	<!--  2、配置拦截规则 
      -->
    	<tx:advice id="txAdvice" transaction-manager="txManager">
    		<tx:attributes>
    			<tx:method name="get*" read-only="true" />
    			<tx:method name="find*" read-only="true" />
    			<tx:method name="load*" read-only="true" />
    			<tx:method name="add*" propagation="REQUIRED" />
    			<tx:method name="save*" propagation="REQUIRED" />
    			<tx:method name="update*" propagation="REQUIRED" />
    			<tx:method name="del*" propagation="REQUIRED" />
    			<tx:method name="*" propagation="REQUIRED" read-only="true" />
    		</tx:attributes>
    	</tx:advice>
    	<aop:config proxy-target-class="true">
    		<aop:pointcut expression="execution(* Service.*.*(..))"
    			id="serviceMethod" />
    		<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
    	</aop:config>
    	
    	<!-- 注解扫描包下的全部类文件 -->
    	<context:annotation-config />
    	<context:component-scan base-package="com.*"/>
    	
    </beans>

    再看下springmvc-servlet.xml的配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:c="http://www.springframework.org/schema/c" xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    
    <!-- 配置handleMapping
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
     -->
    <!-- 配置HandlerAdapter 
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    -->
    
    <!-- springmvc上传图片 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="utf-8"></property>
    <property name="maxUploadSize" value="10485760000"></property>
    <property name="maxInMemorySize" value="40960"></property>
    </bean>
    
    <!-- 用于将对象转为JSON -->
    <bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="supportedMediaTypes">
    <list>
    <value>text/plain;charset=UTF-8</value>
    </list>
    </property>
    </bean>
    
    <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    </bean>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
    <list>
    <ref bean="stringConverter"/>
    <ref bean="jsonConverter"/>
    </list>
    </property>
    </bean>
    
       <!-- 对模型视图添加前后缀 
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
    -->
    
    <!-- 注解 -->
    <mvc:annotation-driven/>
    <context:component-scan base-package="com.controller"/>
    
    
    </beans>

    再来看下工具包:

    package com.until;
    
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.alibaba.fastjson.JSON;
    
    public class to_json{
    	/**
    	 * 方法功能:将对象转换成JSON字符串,并响应回前台
    	 * 参数:object
    	 * 返回值:void
    	 * 异常:IOException
    	 */
    	public static void writeJson(Object object,HttpServletRequest request,HttpServletResponse response) {
    		PrintWriter out = null;
    		try {
    			String json = JSON.toJSONStringWithDateFormat(object, "yyyy-MM-dd HH:mm:ss");
    			response.setContentType("text/html;charset=utf-8");
    			out = response.getWriter();
    			//System.out.println(json);
    			out.write(json);
    			out.flush();
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (out != null) {
    				out.close();
    			}
    		}
    	}
    }
    
    

    再看下要导入上传图片的jar包(框架的包我就不写了)主要是突出这个功能所以我把包单独建了一个文件:

    下面再来到网页:fabu.jsp的文件

    <body>
    				<DIV id=header class=wrap>
    					<DIV id=logo>
    						<IMG src="images/logo.gif">
    					</DIV>
    				</DIV>
    				<form action="fw/addfw.action" enctype="multipart/form-data" method="post">
    				<DIV id=regLogin class=wrap>
    					<DIV class=dialog>
    						<DL class=clearfix>
    							<DT>
    								新房屋信息发布
    							</DT>
    							<DD class=past>
    								填写房屋信息
    							</DD>
    						</DL>
    						<DIV class=box>
    							
    								<DIV class=infos>
    									<TABLE class=field>
    										<TBODY>
    											<TR>
    												<TD class=field>
    													标 题:
    												</TD>
    												<TD>
    													<INPUT id="title" class=text type=text name="title">
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													户 型:
    												</TD>
    												<TD>
    													<SELECT class=text name=type_id>
    														<OPTION selected value=1000>
    															一室一厅
    														</OPTION>
    													</SELECT>
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													面 积:
    												</TD>
    												<TD>
    													<INPUT id="floorage" class=text type=text
    														name="floorage">
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													价 格:
    												</TD>
    												<TD>
    													<INPUT id="price" class=text type=text 
    													name="price">
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													房产证日期:
    												</TD>
    												<TD>
    													<INPUT id="houseDate" class=text type=text 
    													name="houseDate">
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													位 置:
    												</TD>
    												<TD>
    													区:
    													<SELECT class=text name=district_id>
    														<OPTION selected value=1004>
    															海淀区
    														</OPTION>
    													</SELECT>
    													街:
    													<SELECT class=text name=street_id>
    														<OPTION selected value=1001>
    															中关村大街
    														</OPTION>
    													</SELECT>
    												</TD>
    											</TR>
    											 <TR>
    												<TD class=field>
    													上传图片:
    												</TD>
    												<TD>
    													<INPUT id="file" class=text type=file
    														name="file">
    												</TD>
    											</TR>
    					                        <TR>
    												<TD class=field>
    													联系方式:
    												</TD>
    												<TD>
    													<INPUT id="contact" class=text type=text
    														name="contact">
    												</TD>
    											</TR>
    											<TR>
    												<TD class=field>
    													详细信息:
    												</TD>
    												<TD>
    													<TEXTAREA id="description" name="description"></TEXTAREA>
    												</TD>
    											</TR>
    										</TBODY>
    									</TABLE>
    									<DIV class=buttons>
    									<input type="submit" value="发布信息"/>
    								</form>		
    									</DIV>
    								</DIV>
    						</DIV>
    					</DIV>
    				</DIV>
    				<DIV id=footer class=wrap>
    					<DL>
    						<DT>
    							京ICP证1000001号
    						</DT>
    						<DD>
    							关于我们 · 联系方式 · 意见反馈 · 帮助中心
    						</DD>
    					</DL>
    				</DIV>
    			</body>

    因为图片上传需要用到表单提交,所以就没有用ajex提交了。

    再来看看展示的list.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme() + "://"
    			+ request.getServerName() + ":" + request.getServerPort()
    			+ path + "/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<base href="<%=basePath%>">
    
    		<title>My JSP 'list.jsp' starting page</title>
    		<script type="text/javascript" src="jquery-1.8.0.min.js">
    </script>
    		<meta http-equiv="pragma" content="no-cache">
    		<meta http-equiv="cache-control" content="no-cache">
    		<HTML xmlns="http://www.w3.org/1999/xhtml">
    			<head>
    				<TITLE>租房 - 首页</TITLE>
    				<LINK rel=stylesheet type=text/css href="css/style.css">
    				<meta http-equiv="expires" content="0">
    				<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    				<meta http-equiv="description" content="This is my page">
    				<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    				<script type="text/javascript">
     
    function selectHouse(){
    $.ajax({
    				url : 'fw/selectfw.action',
    				type : 'post',
    				data : {},
    				dataType : 'json',
    				success : function(data) {
    					
    					var t = "";
    					for ( var i = 0; i < data.length; i++) {
    		
    						t += "<tr><td style='width:100px'><img src='http://localhost:8080/sshkaoshi2/upload/"
    								+ data[i].url
    								+ "'  width='100' height='75' ></td><td><span style='margin-left:10px'>"
    								+ data[i].title
    								+ "</span></td><TD><DL><DT>面积:"
    								+ data[i].floorage
    								+ "</DT><DD>年限:"
    								+ data[i].houseDate
    								+ "<BR>价格:"
    								+ data[i].price
    								+ "</DD></DL></TD><TD class=house-type><LABEL class=ui-green><INPUT onclick=update(46) value='修    改' type=button name=search></LABEL></TD><TD class=house-price><LABEL class=ui-green><INPUT value='删    除' type=button name=search></LABEL></TD></tr> ";
    
    					}
    					$("#table").html(t);
    				},
    				error : function(data) {
    
    				}
    
    			});
    
    }
    </script>
    
    
        
    			</head>
    			<input type="text" id="aa"/>
    			<input type="text" id="bb"/>
    			<body onload="selectHouse()">
    				<DIV id=header class=wrap>
    					<DIV id=logo>
    						<IMG src="images/logo.gif">
    					</DIV>
    				</DIV>
    				<DIV id=navbar class=wrap>
    					<DL class="search clearfix">
    
    						<DT>
    							<UL>
    								<LI class=bold>
    									房屋信息
    								</LI>
    								<LI>
    									标题:
    									<INPUT class=text type=text name=title>
    									<LABEL class=ui-blue>
    										<INPUT onclick=doSearch() value=搜索房屋 type=button name=search>
    									</LABEL>
    								</LI>
    							</UL>
    						</DT>
    						<DD>
    							<UL>
    								<LI class=first>
    									价格
    								</LI>
    								<LI>
    									<SELECT name=price>
    										<OPTION selected value="">
    											不限
    										</OPTION>
    										<OPTION value=0-100>
    											100元以下
    										</OPTION>
    										<OPTION value=100-200>
    											100元—200元
    										</OPTION>
    										<OPTION value=200-1000000>
    											200元以上
    										</OPTION>
    									</SELECT>
    								</LI>
    							</UL>
    						</DD>
    						<DD>
    							<UL>
    								<LI class=first>
    									房屋位置
    								</LI>
    								<LI>
    									<SELECT id=street name=street_id>
    										<OPTION selected value="">
    											不限
    										</OPTION>
    										<OPTION value=1000>
    											知春路
    										</OPTION>
    										<OPTION value=1001>
    											中关村大街
    										</OPTION>
    										<OPTION value=1002>
    											学院路
    										</OPTION>
    										<OPTION value=1003>
    											朝阳路
    										</OPTION>
    									</SELECT>
    								</LI>
    							</UL>
    						</DD>
    						<DD>
    							<UL>
    								<LI class=first>
    									房型
    								</LI>
    								<LI>
    									<SELECT name=type_id>
    										<OPTION selected value="">
    											不限
    										</OPTION>
    										<OPTION value=1000>
    											一室一厅
    										</OPTION>
    										<OPTION value=1001>
    											一室两厅
    										</OPTION>
    										<OPTION value=1002>
    											两室一厅
    										</OPTION>
    										<OPTION value=1003>
    											两室两厅
    										</OPTION>
    									</SELECT>
    								</LI>
    							</UL>
    						</DD>
    						<DD>
    							<UL>
    								<LI class=first>
    									面积
    								</LI>
    								<LI>
    									<SELECT name=floorage>
    										<OPTION selected value="">
    											不限
    										</OPTION>
    										<OPTION value=0-40>
    											40以下
    										</OPTION>
    										<OPTION value=40-500>
    											40-500
    										</OPTION>
    										<OPTION value=500-1000000>
    											500以上
    										</OPTION>
    									</SELECT>
    								</LI>
    							</UL>
    						</DD>
    					</DL>
    				</DIV>
    				<DIV class="main wrap">
    					<TABLE class=house-list id="table">
    
    					</TABLE>
    					<input type="button" value="显示所有的房屋信息" onclick="selectHouse()" />
    					<DIV class=pager>
    						<UL>
    							<LI class=current>
    								<A onclick="shouye()">首页</A>
    							</LI>
    							<LI>
    								<A onclick="shangye()">上一页</A>
    							</LI>
    							<LI>
    								<A onclick="xiaye()">下一页</A>
    							</LI>
    							<LI>
    								<A onclick="moye()">末页</A>
    							</LI>
    						</UL>
    						<SPAN class=total>1/2页</SPAN>
    					</DIV>
    				</DIV>
    				<DIV id=footer class=wrap>
    					<DL>
    						<DT>
    							京ICP证1000001号
    						</DT>
    						<DD>
    							关于我们 · 联系方式 · 意见反馈 · 帮助中心
    						</DD>
    					</DL>
    				</DIV>
    			</body>
    		</html>

    再来看看controller层:

    代码如下:

    package com.controller;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import com.entity.fw;
    import com.entity.json;
    import com.service.fwService;
    import com.until.to_json;
    
    @Controller
    @RequestMapping("fw")
    public class fwController {
    	@Autowired
    	private fwService fs;
    	public fwService getFs() {
    		return fs;
    	}
    	public void setFs(fwService fs) {
    		this.fs = fs;
    	}
    	/*******************开始添加房屋信息******************************/
    	@SuppressWarnings("deprecation")
    	@RequestMapping("/addfw")
    	@ResponseBody
    	public  void infor_insert(@RequestParam("file")CommonsMultipartFile file,HttpServletRequest request,HttpServletResponse response,fw f){
    		try {
    			String url = request.getRealPath("/upload");
    			System.out.println(url);
    			InputStream is1 = file.getInputStream();
    			OutputStream os = new FileOutputStream(new File(url, file
    					.getOriginalFilename()));
    			String path = file.getOriginalFilename();
    			System.out.println(path);
    			f.setUrl(path);
    			
    			
    			fs.addfw(f);
    			int length = 0;
    			byte[] buffer = new byte[400];
    			while ((length = is1.read(buffer)) != -1) {
    				os.write(buffer, 0, length);
    			}
    			os.close();
    			is1.close();
    
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		try {
    			response.sendRedirect("../list.jsp");
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	/***********************开始查询所有房屋*************************************/
    	@RequestMapping("/selectfw")
    	@ResponseBody
    	public void selectfw(HttpServletRequest request,HttpServletResponse response){
    		System.out.println("asda");
    		List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
    		try {
    			  list=fs.selectfw();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		to_json.writeJson(list, request, response);
    	}
    	
    	@RequestMapping("/fenye")
    	@ResponseBody
    	public void fenye(HttpServletResponse response,HttpServletRequest request,int page){
    		System.out.println("come in");
    		List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
    		list=fs.selectall();
    		int pages=list.size()%5==0?list.size()/5:list.size()/5+1;//计算总页数
    	    if(page==0){
    		   page=1;	
    		}
    		List<Map<String, Object>> list1=fs.count(page);
    		System.out.println(list1.get(0));
    		json json=new json();
    		
    		json.setList(list1);
    		json.setPage(page);
    		json.setPages(pages);
    		to_json.writeJson(json, request, response);
    	}
    }
    
    

    再来service层:

    接口层代码:

    package com.service;
    import java.util.List;
    import java.util.Map;
    
    import com.entity.fw;
    
    public interface fwService {
    	public int addfw(fw f);
    	public List<Map<String, Object>> selectfw();
    	public List<Map<String, Object>> count(int page);
    	public List<Map<String, Object>> selectall();
    }
    
    

    实现层代码:

    package com.service.imp;
    
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import com.dao.fwDao;
    import com.entity.fw;
    import com.service.fwService;
    @Service("fwservice")
    public class fwServiceImp implements fwService{
    	@Autowired
    	private fwDao fd;
    	public fwDao getFd() {
    		return fd;
    	}
    	public void setFd(fwDao fd) {
    		this.fd = fd;
    	}
    
    	/**************添加房屋*************************/
    	public int addfw(fw f) {
    		System.out.println("asd");
    		int a=fd.addfw(f);
    		if(a>0){
    			System.out.println("添加房屋成功");
    		}
    		return a;
    	}
    	/************查询所有房屋********************************/
    
    	public List<Map<String, Object>> selectfw() {
    		String sql="select *from fw ";
    		List<Map<String, Object>> list=fd.selectfw(sql);
    		return list;
    	}
    
    	public List<Map<String, Object>> count(int page) {
    		String sql="select * from fw";
    		List<Map<String, Object>> list=fd.count(sql,page);
    		return list;
    	}
    
    	public List<Map<String, Object>> selectall() {
    		String sql="select * from fw";
    		List<Map<String, Object>> list=fd.selectall(sql);
    		return list;
    	}
    
    }
    
    

    再来到dao层

    接口层程序为:

    package com.dao;
    
    import java.util.List;
    import java.util.Map;
    
    import com.entity.fw;
    
    public interface fwDao {
    	public int addfw(fw f);
    	public List<Map<String, Object>> selectfw(String sql);
    	public List<Map<String, Object>> count(String sql,int page);
    	public List<Map<String, Object>> selectall(String sql);
    }
    
    

    实现层程序:

    package com.dao.imp;
    
    import java.util.List;
    import java.util.Map;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.transform.Transformers;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;
    
    import com.dao.fwDao;
    import com.entity.fw;
    @Repository("fwDao")
    public class fwDaoImp implements fwDao{
    	@Autowired
    	private SessionFactory sessionFactory;
    	public SessionFactory getSessionFactory() {
    		return sessionFactory;
    	}
    	public void setSessionFactory(SessionFactory sessionFactory) {
    		this.sessionFactory = sessionFactory;
    	}
    	public Session getCurrentSession() {
    		return sessionFactory.openSession();//如果开启事务,要与事务配置的命名规则相符合
    	}
    	/************************添加房屋*****************************************/
    	public int addfw(fw f) {
    		System.out.println("来到dao层");
    		getCurrentSession().save(f);
    		int a=1;
    		return a;
    	}
    	/*************************查询房屋******************************************/
    	@SuppressWarnings("unchecked")
    	public List<Map<String, Object>> selectfw(String sql) {
    		   Query query=getCurrentSession().createSQLQuery(sql);
    		   query.setMaxResults(5);//显示当前最大行数
    		   query.setFirstResult(0);//起始行数
    		   List<Map<String, Object>> list=query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    		return list;
    	}
    	@SuppressWarnings("unchecked")
    	
    	public List<Map<String, Object>> count(String sql,int page) {
    		 Query query=getCurrentSession().createSQLQuery(sql);
    		 query.setMaxResults(5);
    		 query.setFirstResult((page-1)*5);
    		 List<Map<String, Object>> list=query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    		 return list;
    	}
    	@SuppressWarnings("unchecked")
    	public List<Map<String, Object>> selectall(String sql) {
    		 Query query=getCurrentSession().createSQLQuery(sql);
    		 List<Map<String, Object>> list=query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    		 return list;
    	}
    
    }

    接下来再来看看实体:

    fw.java字段:

    package com.entity;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity
    public class fw {
    private int fwid;
    private String title;
    private String floorage;
    private String price;
    private String houseDate;
    private String contact;
    private String description;
    private String url;
    
    @Id
    @GeneratedValue
    public int getFwid() {
    	return fwid;
    }
    public void setFwid(int fwid) {
    	this.fwid = fwid;
    }
    public String getTitle() {
    	return title;
    }
    public void setTitle(String title) {
    	this.title = title;
    }
    public String getFloorage() {
    	return floorage;
    }
    public void setFloorage(String floorage) {
    	this.floorage = floorage;
    }
    public String getPrice() {
    	return price;
    }
    public void setPrice(String price) {
    	this.price = price;
    }
    public String getHouseDate() {
    	return houseDate;
    }
    public void setHouseDate(String houseDate) {
    	this.houseDate = houseDate;
    }
    public String getContact() {
    	return contact;
    }
    public void setContact(String contact) {
    	this.contact = contact;
    }
    public String getDescription() {
    	return description;
    }
    public void setDescription(String description) {
    	this.description = description;
    }
    public String getUrl() {
    	return url;
    }
    public void setUrl(String url) {
    	this.url = url;
    }
    }
    
    

    这是发布的界面


    展示的界面:

    数据库看看:

    好了今天的程序就到这,这也是为了做个笔记,欢迎大家一起讨论。

    ----------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------

    2021年9月9日更新记录

    在orcle数据库中采用二进制保存图片时候,字段类型为BLOB的时候,对应实体应该采用

    private byte pcbFile[];

    byte的字段类型

    展开全文
  • 前端使用from表单提交图片 HTML <form action="${pageContext.request.contextPath}/pictureServlet" method="post" enctype="multipart/form-data"> <input id="input" type="file" name="file">
  • JavaWeb上传图片到服务器,存储到数据库,并在页面显示 Servlet @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置编码 req....
  • JavaWeb使用文字识别上传图片内容,包含上传图片到服务器,并识别图片将识别结果返回到页面
  • 前端使用layui的图片上传,将文件base64编码,然后在后端使用转码类来操作base64编码,并保存图片到本地,继而获取文件地址,将文件地址保存到数据库中 1.使用layui的图片上传 infoset.jsp layui.use('upload', ...
  • 该文档属于学习类, 已经是一个完整的JavaWeb工程,只是细节方面有待完善;该工程实现了视频的...实现了图片上传,但是没有实现图片的分类;使用了百度编辑器 - UEditor 实现文字的上传,也注释掉了粘贴复制功能。
  • JavaWeb上传图片

    2016-09-06 00:37:44
    ; charset=UTF-8" pageEncoding="UTF-8"%> 附件上传 package servlet2; import java.io.IOException; import java.util.UUID; import javax.servlet.
  • 文件上传 图片上传 上传
  • JavaWeb实现图片上传并显示

    万次阅读 多人点赞 2018-07-03 14:37:19
    // 设置上传图片的保存路径 String savePath = this.getServletContext().getRealPath("/images"); File file = new File(savePath); // 判断上传文件的保存目录是否存在 if (!file.exists() && !file....
  • javaweb图片上传

    千次阅读 2017-05-10 10:29:18
    Javaweb中要上传图片,如果需要显示在页面上,那么就要把文件长传到项目的根目录下,如果不需要显示的话可以上传到硬盘上,因为Tomcat服务器只能够显示在根目录下的图片。 首先我们把该功能嵌套在用户注册功能里...
  • javaweb 中关于上传图片的存储路径问题 图片和项目最好分开,可以将图片单独创建一个文件夹放在Tomcat的webapps文件夹下。例如,在Tomcat下创建images文件夹,启动Tomcat服务器后就可以通过...
  • 主要为大家详细介绍了javaWeb实现裁剪图片上传完整代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • javaweb实现图片上传图片加载,图片显示,图片按照任意高宽比例显示,其中上传图片保存在服务器上
  • javaweb上传文件夹

    2019-06-12 10:49:08
    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post(get方式提交有大小限制,post...
  • 上传图片到服务器_javaweb

    千次阅读 2018-08-28 15:39:28
    首先先写一个工具类——uploadutils package login_pack.utils;... 文件上传的工具类 * */ public class uploadutils { /* UUID 生成随机的字符串 生成唯一的文件名: * */ public static String getUUI...
  • 最近做一个web项目用到上传图片,于是根据个人的知识 及网上的搜集,将其总结于下: 上传图片时显示图片在页面   function imageshow(){ var file = document.getElementById("fileload").files[0]; ...
  • /* 设置添加物品照片的保存路径以及保存的文件名 */ goods.setGoodsimg("/images/" + saveName); /* 设置创建时间 */ goods.setCreatetime(dateString); /* 设置修改时间 */ goods.setUpdatetime(dateString); /* ...
  • 使用FileUpload 组件上传图片文件,并对文件的格式,大小进行验证!
  • Form表单图片提交javaWeb上传图片都需要哪些东西1.添加Form表单必须要加关键词2.写两个监听器,存储磁盘的路径,和http协议路径,拼接字符串2.1 获取站点名称 String 中的subString方法截取字符串2.2获取客户端路径 ...
  • javaweb图片图片上传代码及详解

    千次阅读 2019-04-13 21:48:17
    // 上传图片及图片调用add方法 public String add(HttpServletRequest request, HttpServletResponse response, Page page) { //用来接收上传图片的名字 Map<String,String> params = new HashMap<>...
  • 上传图片就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里, 不管你怎样重启项目,或者清理缓存,上传的文件依然存在! 再来解释一波! D:\project\myProject\editor\WebRoot 这个路径是项目的...
  • 运用ueditor可成功运行上传图片 Javaweb项目
  • 最近在做一个JavaWeb的项目,涉及到图片上传,并且需要将图片通过URL回显给JSP页面,在调试的时候发现,上传到tomcat的图片再重新部署之后就消失了。研究了半天发现才解决了。首先说一下,我为什么要将图片存放到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,620
精华内容 2,648
关键字:

javaweb上传图片

java 订阅