我们在平时写程序时都会利用各种各样的框架,从而提升工作效率和代码质量,其实框架归根到底是由底层的代码搭建起来,打好基础是非常重要;下面主要想谈谈Servlet如何把从提交form表单时传来的参数封装在一个class里,并且对其进行解析调用,其中涉及的知识点主要是Servlet和Java反射机制。
Servlet基本知识:
1、Servlet的框架是由两个Java包组成的:javax.servlet和javax.servlet.http
2、Servlet的生命周期:
(一)初始化阶段:init方法;
(二)响应客户请求阶段:service方法;
(三)终止阶段:destroy方法
Java反射机制的基本介绍:
1、Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。
2、Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。
换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。
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 变量
}
@Override
protected 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) {
}
}
}
/**
* 销毁
*/
@Override
public void destroy() {
super.destroy();
}
}
By cq
分享到:
相关推荐
同时,JessMA为应用开发提供了大量Util工具,用来处理应用程序开发过程中通常会遇到的一般性问题,进一步减少应用程序开发者的工作负担。 6) 平缓的学习曲线:学习使用JessMA只需掌握一定的Core Java与JSP/Servlet...
4) 通过JSP中的标签的href属性 或 form的action属性 或 js代码的自定义提交方法进行跳转到Servlet层 5) Servlet层调用Dao层的操作数据库的方法,包括: 数据库的增删改查。添加、删除、查询、多表查询、模糊搜索。 ...
一:一个Servlet可以同时处理多个请求(根据方法名自动对应)。 二:自动封装Form表单参数到实体。 三:封装了怼上传图片、文件的处理,调用一行代码,自动封装到实体类并将图片、文件上传到服务器。 四:百度编辑器...
掌握JSP、JavaBean和Servlet综合应用的基本原则 二、实验要求 创建一个WEB应用,综合利用JSP、JavaBean和Servlet技术实现用户登录(注册功能 选做)。程序至少包含:一个登录页面login.jsp,一个欢迎页面hello.jsp...
面向对象-封装、继承、多态 内存的分析 递归 集合类、泛型、自动打包与解包、Annotation IO 多线程、线程同步 TCP/UDP AWT、事件模型、匿名类 正则表达式 反射机制 2:数据库(Oracle或者MySQL) SQL语句 多表...
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器...
然后结合一个实例,详细讨论了Struts在实际开发过程中的应用,最后提供一些在开发过程中积累的经验,供大家参考。 <br/>2、关键词 Struts、MVC、J2EE、Tiles、Framework <br/>3、Framework ...
An incoming event is normally in the form of an HTTP request, which the servlet Container turns into an HttpServletRequest. The Controller looks at the incoming event and dispatches the request to an ...
dao包:数据访问,对数据库的一些封装操作。 实体包:实体类,javabean构建,视图层和数据库之间的主轴作用。 V(视图层) Jsp页面:与用户进行交互的界面。 C(控制器层) servlet包:控制层,处理视图层Jsp...
8.类的封装 11 9.实例成员和类成员 13 (四).类的继承 14 1.创建子类 14 2.this引用、super引用 16 3.最终类和抽象类 18 (五).类的多态性 18 1. 方法的重载 18 2. 方法的覆盖 18 (六).接口 20 1. 定义接口 20 2...
可是,servlet也存在一个严重问题,因为所有的HTML输出必须像下面这段代码那样封装在string对象里,所以servlet将HTML标签发送给浏览器时既繁琐又容易出错: 这大大增加了编程的难度,而且即便是对网页在表现方面的...
文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上...
当上传文件大于缓冲区大小时, fileupload组件将使用临时文ServletFileUpload 负责处理上传的文件数据,并将表单中每个输入项封装成一个 FileItem 对象中。常用方法有: boolean isMultipartContent...
form action="/servlet/ReceiveServlet" ENCTYPE="multipart/form-data" method=post > C)提交请求 提交请求的过程由浏览器完成的,并且遵循 HTTP 协议,每一个从浏览器端到服务器端的一个请求,都包含了...
\testJson\src\jsonExercise\JSONServlet.java 处理页面请求的Servlet。 \testJson\src\jsonExercise\ComdtyBean.java 商品信息的POJO。 \testJson\WebRoot\orderInfo.jsp 录入商品信息的JSP页面。 第21...
{14.3.1}SAX应用}{206}{subsection.14.3.1} {14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache.commons}{211}{section.14.6} {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{...
二、从Servlet获取当前页数据 74 三、创建ComboBox 76 四、小结 77 第十三章:面板(Panel) 78 一、漂亮的窗格从这里开始 78 二、Ext.Panel类 78 三、小结 83 第十四章:Panel的子类——Window窗口 85 一、概述 85 ...