博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BeanUtils数据封装与表单JavaBean
阅读量:4926 次
发布时间:2019-06-11

本文共 3177 字,大约阅读时间需要 10 分钟。

一.BeanUtils工具的解释 

(1)Apache的Commons组件中。提供了一个实用的工具类BeanUtils,利用它可以方便的将表单数据值填充值Bean中;

(2)javax.servlet.ServletRequest.getParameterMap()

在ServletRequest接口中,getParameter()方法的作用在于将client传来的參数封装在一个Map对象中,致谢參数能够通过GET POST

方法提交;

(3)org.apache.commons.beanutils.BeanUtils.populate()

这种方法的作用是将存储在Map中的參数填入给定的一个JavaBean对象中;

BeanUtils.populate(),第一个形參是一个bean对象,也就是表单的JavaBean,第二个形參是一个Map对象。也就是存储有表单圆度的Map对象;

二.举例具体解释

(1)编写一个JavaBean程序类RegForm

package my;public class RegForm {    private String userName;    private String password;    private String sect;    private String hobby[];    private String memo;        public void setUserName(String s)    {    	userName=s;    	}    public String getUserName()    {    	return userName;    	}    public void setPassword(String s)    {    	password=s;    	}    public String getPassword()    {    	return password;    	}       public void setSect(String s)    {    	sect=s;    	}    public String getSect()    {    	return sect;    	}     		    public void setHobby(String s[])    {    	hobby=s;    	}    public String[] getHobby()    {    	return hobby;    	}      public void setMemo(String s)    {    	memo=s;    	}    public String getMemo()    {    	return memo;    	} }

(2)新建一个填写数据的表单

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
无标题文档
//反射机制将表单自己主动填到‘my’表单中
您的username是:
您的口令是:
您的性别是:
您的爱好是:<% String h[]=my.getHobby(); if(h!=null) for(int i=0;i
您的附言是:
(3)新建一个Servlet程序    reformServlet处理表单

package my;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import org.apache.commons.beanutils.*;public class RegFormServlet extends HttpServlet {    protected void doGet(HttpServletRequest request,HttpServletResponse response)                         throws ServletException,java.io.IOException   {      ServletContext application=getServletContext() ;      ServletConfig config=getServletConfig() ;      response.setContentType("text/html;charset=gb2312");      PrintWriter out=response.getWriter();       HttpSession session =request.getSession();      request.setCharacterEncoding("gb2312");            RegForm form=new RegForm();	  Map  map=request.getParameterMap();	  try	  {	  	 BeanUtils.populate(form,map);	  }catch(Exception e)	  {	  	System.out.println("表单处理出错:"+e);	  	}	    out.print("
您的姓名是:"+form.getUserName()); out.print("
您的口令是:"+form.getPassword()); out.print("
您的性别是:"+form.getSect()); out.print("
您的爱好是:"); String h[]=form.getHobby(); if(h!=null) for(int i=0;i
您的附言是:"+form.getMemo()); } protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,java.io.IOException { doGet(request,response); }}
(4)另一个创建数据的界面

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
无标题文档

会员注冊信息

username:

口令:

性别:

爱好: 篮球 排球 足球

附言:

(5)关于servlet的部署省去过程

(6)ok!

转载于:https://www.cnblogs.com/mfrbuaa/p/5176008.html

你可能感兴趣的文章
网页上实现 Project 甘特图
查看>>
AttributeError: '_csv.reader' object has no attribute 'next'
查看>>
八大排序算法
查看>>
Meteor部
查看>>
WindowsPhone 在 根据公历 获取月球日期数据
查看>>
数字金额大小写转换
查看>>
【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大
查看>>
AWS Credentials 使用
查看>>
iOS 多线程,ARC
查看>>
Javascript小技巧,去掉小数位并且不会四舍五入
查看>>
指定初始化方法
查看>>
使用eclipse进行重构
查看>>
vs mfc 静态文本 改变字体大小
查看>>
Hidden Word
查看>>
radios组件
查看>>
Android客户端采用Http 协议Post方式请求与服务端进行数据交互
查看>>
《浙大版-数据结构(第二版)》习题2.5 两个有序链表序列的合并(15 分)<有疑问?变化之后 L1 L2没办法NULL >...
查看>>
Ubuntu18.04 安装Chrome浏览器
查看>>
Linux命令总结_文件的输入与 输出
查看>>
[ZJOI2010]数字计数
查看>>