首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Servlet处置form的一些封装应用

2012-09-01 
Servlet处理form的一些封装应用???? 我们在平时写程序时都会利用各种各样的框架,从而提升工作效率和代码质

Servlet处理form的一些封装应用

???? 我们在平时写程序时都会利用各种各样的框架,从而提升工作效率和代码质量,其实框架归根到底是由底层的代码搭建起来,打好基础是非常重要;下面主要想谈谈Servlet如何把从提交form表单时传来的参数封装在一个class里,并且对其进行解析调用,其中涉及的知识点主要是Servlet和Java反射机制。

?

Servlet基本知识:

public abstract class TestAction extends HttpServlet {protected HttpServletRequest request; //请求对象protected HttpServletResponse response;//响应对象private ActionForm actionForm;/** * 初始化 * @param request * @param response * @throws ServletException * @throws IOException */private void init(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { init(formClass);//实例化继承ActionForm父类的子类class initField();// 初始化ActionForm 变量}@Overrideprotected void service(HttpServletRequest request,HttpServletResponse response) {//处理请求/**如果想获取form表单提交时的变量信息,可根据ActionForm表单class对应变量的get和set方法获取**/}private void initField() {Field[] fields = actionForm.getClass().getDeclaredFields();//返回的是classr的声明变量的集合for (Field field : fields) {//遍历String fieldName = field.getName();//获取变量名 String[] values = request.getParameterValues(fieldName);//基于servlet 的 request请求方法Class<?> type = field.getType();//变量的类型String firstLetter = fieldName.substring(0, 1).toUpperCase();String setMethodName = "set" + firstLetter + fieldName.substring(1);//拼成变量生成的get和set的方法Method setMethod;try {setMethod = actionForm.getClass().getMethod(setMethodName,new Class[] { type });setMethod.invoke(actionForm, values);//把页面传来的变量set到class对应的变量上} catch (Exception e) {}}}/** * 销毁 */@Overridepublic void destroy() {super.destroy();}}

??

?

By cq

热点排行