可以将表单中的请求参数获取,然后封装成javabean,适用于所有servlet项目,免去繁琐的表单数据获取步骤。
1.[代码][Java]代码
package com.util;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
/**
* web工具类,封装请求参数,生成javabean对象
*
* @author lwc
*
*/
public class Webtools {
/**
* 获取表单请求参数,封装成Map
*
* @param request
* @return
*/
public static Map getParams(HttpServletRequest request) {
// 获取参数
Enumeration enumeration = request.getParameterNames();
Map data = new HashMap();
while (enumeration.hasMoreElements()) {
String param = enumeration.nextElement();
Object value = request.getParameter(param);
data.put(param, value);
}
return data;
}
/**
* 解析Map从而得到一个javabean对象
*
* @param clazz
* @param data
* @return
* @throws Exception
*/
public static T getBean(Class clazz, Map data)
throws Exception {
T entity = null;
if (data != null && data.size() > 0) {
entity = clazz.newInstance();
for (Entry entry : data.entrySet()) {
BeanUtils.setProperty(entity, entry.getKey(), entry.getValue());
}
}
return entity;
}
}
2.[代码][Java]代码
package com.web;
import java.io.IOException;
import java.util.Map;
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.util.Webtools;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 获取参数
Map data = Webtools.getParams(request);
// 构造对象
User user = null;
try {
user = Webtools.getBean(User.class, data);
} catch (Exception e) {
e.printStackTrace();
}
if ("zs".equals(user.getName()) && "123".equals(user.getPwd())) {
request.getSession().setAttribute("user", user);
// 转发
request.getRequestDispatcher("/index.jsp").forward(request,
response);
} else {
request.getRequestDispatcher("/fail.jsp")
.forward(request, response);
}
}
}
3.[文件] servlet-3.0.zip ~ 768KB 下载(86)