
6:对数据库存取图片进行的 *** 作:
核心思想:通过二进制流的形式进行存储和读取。
具体:存储图片:一般是通过文件上传的方式进行存储的
1.首先通过request获得表单中图片的地址
2.然后根据这个路径可以使FileInputStream获得文件输入流
3.pstmt.setBinaryStream(i,
fis,
fis.available())
最后pstmt.executeUpdate()就完成整个插入语句了。
读取:1.根据url的id传一个对应数据库摸个图片的id号
2.根据这个id执行查询,通过rst.getBinaryStream(1)返回一个输入流(里面存的是图片)
3.读输入流,放到字节数组中,再通过response返回一个能输出二进制流的ServletOutputStream实例(ServletOutputStream
sos=
response.getOutputStream()
),
4.通过这个输出流把字节数组的字节流写出
希望对你有所帮助哈
jsp中实现文件上传选择是通过input file=“file”实现的。举例如下:
有一个如下内容的upload.jsp文件,用来选择要上传的文件:
<html>
<head>
<title>Jsp文件上传例子</title>
</head>
<body>
<form name="upform" action="UploadServlet" method="POST" enctype="multipart/form-data">
<input type ="file" name="file1" id="file1"/><br/>
<input type="submit" value="上传" /><br/>
<input type="reset" />
</form>
</body>
</html>
上面文件值得注意的地方:
1. action="UploadServlet" 必须和后面的web.xml配置文件中对servlet映射必须保持一致.
2. method="POST" 这里必须为"POST"方式提交不能是"GET".
3. enctype="multipart/form-data" 这里是要提交的内容格式,表示你要提交的是数据流,而不是普通的表单文本.
4. file1表示你要上传一个文件.
java文件中获得路径Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 获得当前类所在路径
System.getProperty("user.dir") // 获得项目根目录的绝对路径
System.getProperty("java.class.path")//得到类路径和包路径
打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classesF:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
2、 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI())
当前web应用的绝对路径 :application.getRealPath("/")
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI())
当前web应用的绝对路径 :application.getRealPath("/")
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
3、Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath()
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
webapp路径:request.getSession().getServletContext().getRealPath("/")
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/")
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)