當前位置:
首頁 > 知識 > web組件工具之獲取表單數據:webUtils

web組件工具之獲取表單數據:webUtils

本文需要的架包:commons-beanutils-1.8.3.jar、commons-logging-1.1.3.jar、servlet-api.jar。

本文共分為五部分:1)封裝通用工具類:從表單接收數據並封裝到實體類中;2)繪製jsp頁面:傳輸數據; 3)創建實體類:用來存放表單數據; 4)創建servlet類:調用工具類,實現數據封裝; 5) 配置web.xml文件

注意:1)本工具類也同樣適用於action;

2)jsp中的表單名稱與實體類中的屬性名稱必須一致。

1.封裝通用工具類(WebUtils.java)

package com.BlueStar.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;

public class WebUtils {

public static <T> T getData(HttpServletRequest req,Class<T> clazz){
// convert Date start
ConvertUtils.register(new Converter {
@Override
public Object convert(Class type, Object value) {
//filter
if(type != Date.class) return null;
if(value == null || "".equals(value.toString.trim)) return null;
//convert
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Date date = null;
try {
date = format.parse(value.toString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace;
}

return date;
}
}, Date.class);
// convert Date end

T t = null;
try {
//newInstance
t = clazz.newInstance;
//set value from jsp
BeanUtils.populate(t, req.getParameterMap);
} catch (Exception e) {
e.printStackTrace;
}
return t;
}
}

2. 繪製jsp頁面(userInfo.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="info" method="post">
姓名:<input type="text" name="userName" width="20%"/><br/><br/>
密碼:<input type="password" name="password" width="20%"/><br/><br/>
生日:<input type="text" name="birthday" width="20%"/><br/><br/>

<button type="submit" value="submit">submit</button>
&nbsp;&nbsp;&nbsp;
<button type="reset" value="reset">reset</button>
</form>
</body>
</html>

3.創建實體類(UserInfoFormBean.java)

package com.BlueStar.entity;

import java.util.Date;

public class UserInfoFormBean {

private String userName;
private String password;
private Date birthday;

public String getUserName {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public Date getBirthday {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString {
return "UserInfoFormBean [userName=" + userName + ", password="
+ password + ", birthday=" + birthday + "]";
}

}

4.創建servlet(UserInfoServlet.java)

package com.BlueStar.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.BlueStar.entity.UserInfoFormBean;
import com.BlueStar.util.WebUtils;

public class UserInfoServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

UserInfoFormBean formBean = WebUtils.getData(req, UserInfoFormBean.class);
System.out.println(formBean);
}
}

5. 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>library</display-name>
<welcome-file-list>
<welcome-file>userInfo.jsp</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>UserInfoServlet</servlet-name>
<servlet-class>com.BlueStar.servlet.UserInfoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserInfoServlet</servlet-name>
<url-pattern>/info</url-pattern>
</servlet-mapping>
</web-app>

更多內容,請訪問:http://www.cnblogs.com/BlueStarWei/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

VMware workstation批量創建虛擬機和自動化安裝操作系統(一)
Python:使用Kivy將python程序打包為apk文件
bboss quartz定時任務使用案例介紹

TAG:達人科技 |

您可能感興趣

jQuery Mobile 表單
我國科學家在Nature Review Chemistry上發表單原子催化述評
contact form 7 使用教程,史上最受歡迎的WP表單插件
SpringMVC接收Form表單中的數組數據
Web Pages HTML 表單
Django 表單
form表單提交時,action url中參數無效的解決方法
ASP.NET Web Forms 編程HTML 表單
ASP.NET Web Pages-HTML 表單
validate表單驗證及自定義方法
淺談php表單安全中Token的實際應用
Samuel發表單獨活動宣言 疑似與所屬社不合
OPPO Find X充滿電僅15分鐘?詳細配置表單全曝光
JQ判斷from表單是否修改兩種方式
基於AI的會話界面將成替代Web表單
相對HTML4,HTML5中新增的6大表單屬性,你掌握了幾個?
HTML5表單自動驗證
30個創意的手機APP表單UI界面設計
FAMI通:最想玩的遊戲表單(09/23/2018)
一加 6規格表單泄露:安卓8.1+驍龍845+OPPO=一加?