Java中使用Servlet的是否最烦的是表单数据太多的的是否自己写代码封装数据太麻烦,于是写了一个解析request中的数据封装成对象的工具类方法,代码如下:
1、工具类代码:
package com.crazyiter.mssp.utils;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
/**
* 取得request对象中 所有的参数值并生成 一个相应的对象返回
* @author john
*
*/
@SuppressWarnings("all")
public class ParseHtml {
/**
* Class<T> beanClass可以接受任何类型的javaBean,使用泛型调用者不用进行强转
* @param <T>
* @param request
* @param beanClass
* @return
*/
public static <T> T request2Bean(HttpServletRequest request, Class<T> beanClass) {
try {
/**创建封装数据的bean**/
T bean = beanClass.newInstance();
Map map = request.getParameterMap();
BeanUtils.populate(bean, map);
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
(工具代码)
2、使用代码:
package com.crazyiter.mssp.action;
import java.io.IOException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.crazyiter.mssp.common.ReflectionUtils;
import com.crazyiter.mssp.domain.SmsConfig;
import com.crazyiter.mssp.service.SmsService;
import com.crazyiter.mssp.utils.ParseHtml;
/**
* 用户管理Controller
* @author john
*/
@SuppressWarnings("serial")
public class SmsConfigAction extends HttpServlet {
SmsService smsService = new SmsService();
/**
* 根据短信配置信息
*/
public void getsmsconfig(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
SmsConfig smsConfig = smsService.getSmsConfig();
request.setAttribute("smsconfig", smsConfig);
request.getRequestDispatcher("view/smsconfig/edit.jsp").forward(request,response);
}
/**
* 修改短信配置信息
*/
public void updatesmsconfig(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
SmsConfig sc = (SmsConfig)ParseHtml.request2Bean(request, SmsConfig.class);
System.out.println(sc.getUrl());
request.getRequestDispatcher("index.jsp").forward(request,response);
}
/**
* 短信数据Controller过滤器
*/
public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String cmd = request.getParameter("cmd");
Method method = ReflectionUtils.getDeclaredMethod(SmsConfigAction.class, cmd);
try {
if(method!=null){
method.invoke(new SmsConfigAction(),request, response);
}else{
request.getRequestDispatcher("index.jsp").forward(request,response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
(例子代码)
注意:上面的绿色部分为主要实现代码。
转自:http://www.crazyiter.com/software/document/474.html
分享到:
相关推荐
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...
2. **Servlet**:在Java Web中,Servlet是处理HTTP请求并生成响应的Java类。它扩展了Java平台的网络应用能力,允许开发者编写动态Web内容。 3. **HttpServletRequest对象**:当客户端发送一个HTTP请求到服务器时,...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...
**Java SpringBoot JPA 代码生成工具** 在Java开发领域,SpringBoot框架因其简洁的配置、快速的开发效率以及丰富的生态而备受青睐。在构建基于SpringBoot的应用时,数据访问层通常采用Java Persistence API (JPA) ...
对于MySQL数据库的支持,意味着该工具可以连接到MySQL数据库,解析表结构,并根据表的信息生成对应的实体类(Model)以及相应的数据访问对象(DAO)。这通常包括CRUD(创建、读取、更新、删除)的基本操作,有时还会...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...
Java中的JAXB(Java Architecture for XML Binding)是一个用于在Java对象和XML之间进行绑定的工具,使得我们可以方便地在XML文档和Java对象之间进行转换。它简化了Web服务的开发,尤其是在处理XML数据时。本篇文章...
### Java语言中的常用术语详解 #### AAA系统(认证、授权、计帐) 在Java领域乃至整个计算机网络领域中,AAA(认证、授权、计帐)系统是非常重要的一个概念。它通常用于实现网络资源的安全访问控制。 - **认证...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...
在Oracle 10g环境中进行Java编程涉及到一系列关键概念和技术,包括Java平台的构成、Java虚拟机(JVM)、Java开发工具包(JDK)以及Java在企业互联网计算中的应用。以下是对这些知识点的详细解释: **Java平台**:...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...
方法重载允许在同一个类中定义多个同名但参数列表不同的方法,而方法覆盖则是在子类中重新定义父类的方法。 6. **接口(Interface)**:接口定义了一组方法签名,是实现多继承的手段。内部类(Inner Class)可以在...
回调机制是指在程序设计中,一个函数或方法可以将另一个函数作为参数传递,并在适当的时候调用该参数。这种方式常用于异步处理、事件驱动模型等场景。例如,在完成某个操作后需要通知调用方时,可以通过回调函数来...
开发小工具是 Java 开发中常用的工具包,itcast-tools-1.4.jar 库提供了多种实用功能,包括生成随机字符、Map 到 Bean 的转换、数据库连接池等。下面是开发小工具的详细介绍。 CommonUtils CommonUtils 是一个实用...
List、Set、Collection、Collections:List是有序的Collection,Set不允许重复元素,Collection是集合框架的根接口,Collections则是提供各种方法来操作集合的工具类。 Java的基本数据类型:Java中的基本数据类型有...