/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.cn.struts.action;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.beans.BeanUtils;
import org.springframework.util.FileCopyUtils;
import com.cn.struts.dao.UserDao;
import com.cn.struts.form.UserForm;
import com.cn.struts.vo.UserVo;
public class UserAction extends DispatchAction {
private UserDao userDaoimp;
public ActionForward regist(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
UserVo user=new UserVo();
user.setUid(userForm.getUid());
user.setUname(userForm.getUname());
user.setUpassword(userForm.getUpassword());
try {
user.setUimage(userForm.getUimage().getFileData());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//BeanUtils.copyProperties(userForm, user);
userDaoimp.insert(user);
return mapping.findForward("seccuss");
}
public ActionForward selectUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String hql="from UserVo";
request.setAttribute("userList", userDaoimp.selectAll(hql));
return mapping.findForward("selectUser");
}
public ActionForward deleteOne(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//UserVo user=new UserVo();
int uid=new Integer(request.getParameter("uid"));
userDaoimp.deleteOne(UserVo.class, uid);
String hql="from UserVo";
request.setAttribute("userList", userDaoimp.selectAll(hql));
return mapping.findForward("selectUser");
}
public ActionForward updateUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//UserVo user=new UserVo();
int uid=Integer.parseInt(request.getParameter("uid"));
System.out.println(uid);
UserVo userVo=(UserVo)userDaoimp.selectOne(UserVo.class, uid);
System.out .println(userVo.getUname()+":"+userVo.getUpassword());
//UserVo user=new UserVo();
//user.setUid(uid);
//user.setUname(uname);
//user.setUpassword(upassword);
//userDaoimp.deleteOne(UserVo.class, uid);
//String hql="from UserVo";
UserForm userForm = new UserForm();
//BeanUtils.copyProperties(userVo, userForm);
userForm.setUid(userVo.getUid());
userForm.setUname(userVo.getUname());
userForm.setUpassword(userVo.getUpassword());
System.out.print(userForm.getUid());
request.setAttribute("userForm", userForm);
return mapping.findForward("updateUser");
}
public ActionForward updateUserDo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;
UserVo user=new UserVo();
user.setUid(userForm.getUid());
user.setUname(userForm.getUname());
user.setUpassword(userForm.getUpassword());
userDaoimp.update(user);
String hql="from UserVo";
request.setAttribute("userList", userDaoimp.selectAll(hql));
return mapping.findForward("selectUser");
}
public ActionForward uimageShow(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
int uid=Integer.parseInt(request.getParameter("uid"));
System.out.println(uid);
UserVo userVo=(UserVo)userDaoimp.selectOne(UserVo.class, uid);
System.out .println(userVo.getUname()+":"+userVo.getUpassword());
request.setAttribute("userVo", userVo);
return mapping.findForward("uimageShow");
}
public ActionForward uimage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
int uid=Integer.parseInt(request.getParameter("uid"));
System.out.println(uid);
UserVo userVo=(UserVo)userDaoimp.selectOne(UserVo.class, uid);
System.out .println(userVo.getUname()+":"+userVo.getUpassword());
/*response.setContentType("image/ico");
try {
response.getOutputStream().write(userVo.getUimage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
try {
streamImage(userVo.getUimage(), response.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void streamImage(final byte[] blob, final OutputStream contentStream) throws Exception {
ByteArrayInputStream is = new java.io.ByteArrayInputStream(blob);
if (is != null) {
FileCopyUtils.copy(is, contentStream);
}
}
public UserDao getUserDaoimp() {
return userDaoimp;
}
public void setUserDaoimp(UserDao userDaoimp) {
this.userDaoimp = userDaoimp;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<%
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 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<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">
-->
</head>
<body>
<input type="text" value='<bean:write name="userVo" property="uname"/>'>
<hr>
<image src='/uimage.do?method=uimage&&uid=<bean:write name="userVo" property="uid"/>'/>
<a href="selectUser.do?methods=selectUser">查询所有</a>
</body>
</html>
分享到:
相关推荐
在计算机中,所有的信息都是以二进制形式存储的,即由0和1组成的数据。图片、音频、视频等多媒体文件本质上都是二进制数据的集合。当我们在数据库中存储图片时,通常会将图片文件转换为二进制字节流,这样可以节省...
在这个项目中,我们创建一个特定的Struts Action,该Action接收到上传请求后,将文件数据读取并转化为二进制流。接着,使用Hibernate ORM框架与数据库进行交互。Hibernate允许我们定义实体类,映射到数据库表,通过...
通过以上步骤,Struts2可以帮助开发者轻松实现文件上传功能,而无需深入理解HTTP协议和二进制流处理的复杂性。开发者只需关注业务逻辑,而把文件上传的底层实现交给了Struts2和Apache Commons FileUpload组件。如果...
这种方式对处理文本文件内容更方便,但不适用于二进制文件。 ```java private Reader reader; // getter and setter... ``` 同样,你需要手动处理字符流,读取内容并保存。 无论哪种方式,都需要考虑以下...
同时,表单需要设置`enctype="multipart/form-data"`,这样才能传输二进制文件数据。 2. **ActionForm**:创建一个继承自Struts1的`ActionForm`类,该类中包含一个`File`类型的属性,用于接收用户上传的文件。例如...
1. **文件上传基础**:在HTTP协议中,常规的POST请求无法处理文件上传,因此我们需要使用多部分/FormData编码,这是HTTP协议允许的一种特殊编码方式,用于传输二进制数据,如图片、文档等。Struts的`...
在进行文件上传时,HTML表单需要设置`enctype="multipart/form-data"`,这是为了指示浏览器以二进制流的形式发送文件内容。有三种不同的`enctype`值,但`multipart/form-data`是处理文件上传的必要选择。其他两种...
在这种模式下,表单数据会被编码成二进制流的形式,并且文件内容也会被封装进请求参数中。这种方式能够确保文件内容和其他表单数据一同提交。 3. **text/plain**:这种编码方式主要用于发送纯文本数据,例如通过...
在表单提交时,`FileInput`会将选定的文件转换成二进制流,并与其他表单字段一起发送到服务器。 为了解决中文乱码问题,我们需要在多个层面上进行设置。首先,在Ext3.2的表单配置中,确保设置了正确的字符编码,...
在Struts2中进行文件上传时,必须在标签中指定`enctype="multipart/form-data"`,这样表单的数据才会以二进制流的形式发送,而不是默认的URL编码。在给定的内容中,`<s:form>`标签已经正确设置了`enctype`属性。 2...
接着,我们创建一个JSP页面作为用户界面,包含一个`<s:form>`标签,设置`enctype="multipart/form-data"`,这样浏览器才能正确地发送二进制文件数据。在表单内,添加一个`<s:file>`标签用于选择待上传的文件,以及...
在用户端,通常通过HTML表单来选择要上传的文件,表单的`enctype`属性必须设置为`multipart/form-data`,这样才能传输二进制数据。在Struts2中,我们可以使用`<s:file>`标签来创建一个文件选择字段。 ```html ...
接下来,我们将文件转换为字节数组,因为数据库中的BLOB字段通常存储二进制数据。使用`file.getBytes()`方法可以完成这个转换。在数据库操作前,确保已经正确配置了Hibernate的SessionFactory,并且实体类中有一个...
在“struts1上传图片,保存数据库,再显示jsp页面”这个场景中,我们将探讨如何利用Struts1实现文件上传,将图片数据保存到数据库,并在JSP页面上展示。 1. **Struts1的文件上传组件**: Struts1并不直接支持文件...
为了将图片存入Oracle数据库,首先需要确保数据库支持BLOB类型字段,这通常用于存储二进制大对象,如图片。创建一个表,如`IMAGES`,包含`ID`(主键)和`IMAGE_DATA`(BLOB类型)字段。 接下来,我们需要使用JDBC连接...
但是,为了支持文件上传,HTML表单需要设置`enctype="multipart/form-data"`,这使得表单数据可以包含二进制文件内容。在服务器端,Struts2框架提供了处理这些多部分请求的机制。 配置Struts2文件上传需要几个关键...
文件上传的本质是客户端浏览器将本地文件以二进制流的形式发送到服务器端。在 Struts2 中,我们通常会创建一个 Action 类,该类包含用于接收文件的属性,并通过表单提交来处理文件。 2. **Struts2 单个文件上传**...
1. **文件上传**:用户登录后,可以使用系统提供的上传功能选择本地的文件,Struts框架通过Servlet API中的Part接口处理文件流,将文件从客户端传输到服务器的指定目录。此过程需要对文件大小、类型进行限制,以防止...