获取request参数的工具类
package cn.edu.hactcm.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Enumeration; import java.util.List; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.util.Streams; import cn.edu.hactcm.domain.User; import cn.edu.hactcm.exception.WebException; public final class WebUtils { private WebUtils(){} public static <T> T request2Bean(HttpServletRequest request, Class<T> beanClazz) { try { T bean = beanClazz.newInstance(); // TODO 要注意的是修改的数据相当于一条新的,应该把修改信息重新建一个表。 // TODO 在修改表中建立一个字段,用于参照原始数据的ID,每次修改删除原来记录重新添加新数据 // 看一下是否需要id‘ if(request.getParameter("id")==null) BeanUtils.setProperty(bean, "id", makeUUID()); Enumeration e = request.getParameterNames(); while(e.hasMoreElements()) { String name = (String) e.nextElement(); String value = request.getParameter(name); BeanUtils.setProperty(bean, name, value); } return bean; } catch (Exception e) { throw new WebException(e); } } @Deprecated public static <T> T request2Bean_forComment(HttpServletRequest request, Class<T> beanClazz) { try { T bean = beanClazz.newInstance(); // TODO 要注意的是修改的数据相当于一条新的,应该把修改信息重新建一个表。 // TODO 在修改表中建立一个字段,用于参照原始数据的ID,每次修改删除原来记录重新添加新数据 // 看一下是否需要id‘ Enumeration e = request.getParameterNames(); while(e.hasMoreElements()) { String name = (String) e.nextElement(); String value = request.getParameter(name); BeanUtils.setProperty(bean, name, value); } return bean; } catch (Exception e) { throw new WebException(e); } } //这里使用了BeanUtils工具。 public static void copyBean(Object orig, Object dest) { try { // ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.copyProperties(dest, orig); BeanUtils.setProperty(dest, "id", makeUUID()); } catch (Exception e) { throw new RuntimeException(e); } } //获取UUID,作为各表的id的值 public static String makeUUID() { return UUID.randomUUID().toString(); } // 将消息转发给 message.jsp 全局消息页面 public static void forward(String message, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("message", message); request.getRequestDispatcher("/WEB-INF/hactcmmobleshop/message.jsp").forward(request, response); } public static <T>T uploadrequest2Bean(HttpServletRequest request, Class<T> beanClazz) { try { T bean = beanClazz.newInstance(); //处理文件上传 //创建工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); //创建文件上传组件 ServletFileUpload upload = new ServletFileUpload(factory); if (!upload.isMultipartContent(request)) throw new WebException("not a upload form"); String id = makeUUID(); //这是phone的id //获得远程发布手机信息的电脑的ip String releaseip = request.getRemoteAddr(); String releasetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .format(new Date()); String brandname = ""; //添加手机添加者 User user = (User) request.getSession().getAttribute("user"); //看一看是否需要id if (request.getParameter("id") == null) BeanUtils.setProperty(bean, "id", id); if (request.getParameter("releaseip") == null) BeanUtils.setProperty(bean, "releaseip", releaseip); if (request.getParameter("releasetime") == null) BeanUtils.setProperty(bean, "releasetime", releasetime); if (request.getParameter("userid") == null) BeanUtils.setProperty(bean, "userid", user.getId()); //相将brandname属性设置为空,最后通过查询数据库查出 BeanUtils.setProperty(bean, "brandname", brandname); //解析 List<FileItem> fileItems = upload.parseRequest(request); for (FileItem item : fileItems) { if (item.isFormField()) { //封装到bean String name = item.getFieldName(); String value = item.getString("utf-8"); BeanUtils.setProperty(bean, name, value); } else { //文件上传组件 String name = item.getFieldName(); //获得文件名 String filename = item.getName(); filename = filename.substring(filename.lastIndexOf("\\")+1); // TODO 要将上传图片打散存放在不同的目录中,同时存的也不应该仅仅是jpg格式的 // TODO 在这个系统中还有一个错误,那就是不登陆也可以实现所有的功能,也可以实现发布消息,这个待完成,得使用细粒度权限控制 //图片相对于web应用的路径 String webPath = "/uploadphonepic/" + id + ".jpg"; //获得绝对路径 String path = request.getSession().getServletContext().getRealPath(webPath); System.out.println(path); File file = new File(path); file.getParentFile().mkdirs(); // 创建目录 file.createNewFile(); // 创建文件 // 上传 InputStream in = item.getInputStream(); OutputStream out = new FileOutputStream(file); Streams.copy(in, out, true); // 删除临时文件 item.delete(); // 将图片的路径封装到bean BeanUtils.setProperty(bean, name, webPath); } } return bean; } catch (Exception e) { throw new WebException(e); } } }
获取request参数的工具类的更多相关文章
- PHP 命令行参数解析工具类
<?php/** * 命令行参数解析工具类 * @author guolinchao * @email luoyecb@163.com */class CommandLine{ // store ...
- liferay笑傲江湖-API之参数的工具类(ParamUtil)
public class ParamUtil { 036 037 public static boolean get( 038 HttpServletRequest request, String p ...
- JSON参数解析工具类
/// <summary> /// 解析JSON参数 /// </summary> public class JSONParser { JObject jObj = null; ...
- java获取客户端ip地址工具类
public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", " ...
- 获取请求的ip工具类
package com.example.util; import javax.servlet.http.HttpServletRequest; /** * get remote msg * 获取访问的 ...
- 从session中获取当前用户的工具类
package cn.crmx.crm.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Ht ...
- 获取post请求数据工具类
package com.ccidit.features.otherFunctions.util; import java.io.BufferedReader; import java.io.IOExc ...
- beego: 获取request参数
beego提供了一套web开发的框架.但我们在开发过程中遇到了一些问题,现汇总如下. 测试1:测试只有keys数组的情况 func (this *TestController) Index() { k ...
- 使用JS获取request参数
1.document.write('<%=request.getAttribute("param")%>'); 2.window.navigator.userAgent ...
随机推荐
- ACM Wooden Stricks
有一堆n根木棍.每根棍子的长度和重量是预先知道的. 这些棒子将被木工机器逐一加工..它需要一些时间,称为安装时间,用于机器准备加工棒.设置时间与机器中的清洁操作和更换工具和形状相关联.木工机械的安装时 ...
- PHP 5 String 函数
PHP 5 String 函数 PHP String 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. 函数 描述 addcslashes() 返回在指定的字符前添加反斜杠的字符串. add ...
- PHP 序列化/反序列化的方法函数
我们在开发的过程中常常遇到需要把对象或者数组进行序列号存储,反序列化输出的情况.特别是当需要把数组存储到mysql数据库中时,我们时常需要将数组进行序列号操作. 序列化(串行化):是将变量转换为可保存 ...
- Lua语言模型 与 Redis应用
Lua语言模型 与 Redis应用 标签: Java与NoSQL 从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis. 本篇博客主要介绍了 Lua 语言不一样的设计 ...
- 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 ht ...
- PHP 针对多用户 实现头像更换
成品图 思路 登陆页面 表单制作 验证码制作 JavaScript刷新验证码 验证页面 验证逻辑 页面跳转 header函数 Meta标签 JavaScript 上传页面 个人主页 上传核心 最终结果 ...
- 快速了解 Robot Operating System(ROS) 机器人操作系统
http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...
- 悲观的并发策略——Synchronized互斥锁
volatile既然不足以保证数据同步,那么就必须要引入锁来确保.互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁 ...
- Struts 2 之拦截器
拦截器概述 Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP(Aspect Oriented Progr ...
- 08 BaseAdapter 和ListView总结
第八天 ListView 列表视图 一,特点: >垂直滚动列表,是ViewGroup(容器),列表项使用Adapter填充 二,属性 > android:divider="@dr ...