我们在平时写程序时都会利用各种各样的框架,从而提升工作效率和代码质量,其实框架归根到底是由底层的代码搭建起来,打好基础是非常重要;下面主要想谈谈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
分享到:
相关推荐
总结来说,"extjs+servlet+json简单应用"是利用ExtJS构建前端界面,通过Ajax与Servlet进行通信,Servlet处理业务逻辑并返回JSON数据,再由ExtJS解析并展示。这种方式让前后端职责明确,提高了代码的可维护性和扩展性...
总的来说,"servlet实现留言板"项目是一个典型的Java Web应用程序,它整合了Servlet进行后端处理、Javabean封装数据、JSP生成动态内容以及HTML构建用户界面。这个项目对于学习和理解Java Web开发流程具有很高的实践...
在这个实验中,学生将学习如何使用JavaBean封装数据,通过Servlet处理HTTP请求,以及DAO模式在数据库操作中的应用。此外,还将了解JavaScript客户端验证、JSP表达式和请求转发等Web开发技术。通过实践,学生能够更...
在JSP和Servlet结合使用时,JSP主要负责展示逻辑,而Servlet则处理业务逻辑和数据操作。 2. **文件上传原理**: 文件上传通常涉及到表单(`<form>`)元素,尤其是`<input type="file">`字段,用于让用户选择本地...
Servlet是Java平台上的一个核心组件,用于开发动态Web应用程序。Servlet源码的分析能帮助我们深入理解HTTP请求处理流程、服务器生命周期管理以及Java Web开发的底层机制。Apache Tomcat是一款广泛应用的Servlet容器...
在Java Web开发中,Servlet、JSP和JavaBean是三个核心组件,它们共同协作来构建动态网站应用。这里我们将深入探讨如何使用这三个技术实现文件上传功能。 Servlet是Java编程语言中的一个接口,由Java Servlet API...
当用户选择文件并提交表单时,数据会被封装成多部分的HTTP请求(multipart/form-data)。Servlet通过解析这个请求,可以获取到上传的文件内容。Apache的Commons FileUpload库提供了一套方便的API,帮助开发者轻松...
Servlet是Java Web应用的核心组件,它是一个Java类,用于处理来自客户端(如浏览器)的请求并生成响应。在学生管理系统中,Servlet主要负责业务逻辑处理,如接收用户的HTTP请求,对数据库进行操作,如添加、删除、...
在这个系统中,JSP主要负责视图展示,Servlet处理业务逻辑,而JavaBean则作为数据模型来封装和管理数据。 **1. JSP(JavaServer Pages)** JSP是Java平台上的动态网页技术,它允许开发者将HTML代码与Java代码混合...
JSP是Java的一种视图技术,主要用于展示动态内容,而Servlet则是Java Web应用中的控制器,处理用户的请求并生成响应。在文件上传场景中,JSP通常用于接收用户选择的文件,Servlet则负责处理文件的上传逻辑。 在这个...
在这个系统中,JSP(JavaServer Pages)负责展示视图,Servlet处理业务逻辑,而JavaBean则作为数据容器,封装了用户的数据和业务方法。 1. **JSP**:JSP是一种服务器端技术,它允许开发者在HTML页面中嵌入Java代码...
Spring Web MVC是Spring框架的一个核心模块,主要用于构建基于Servlet容器的Web应用程序。它提供了一个灵活、强大的机制来处理HTTP请求,并将其映射到适当的控制器上执行业务逻辑。Spring Web MVC的设计理念之一就是...
Servlet则负责处理业务逻辑,它是Java应用程序的一部分,运行在服务器端,接收并响应客户端请求。 在"JSP+servlet实现简单的学生信息管理"项目中,我们通常会创建以下几个核心组件: 1. **Servlet**:这是系统的...
在Java中,我们可以使用`java.servlet.Part`接口来处理上传的文件,它是Servlet 3.0引入的用于处理multipart/form-data请求的API。 具体到这个压缩包中的“servlet文件上传jar包”,可能包含了一个预封装好的...
`<form>`标签的`method`属性定义了数据提交的方式(GET或POST),而`action`属性指定了处理表单数据的Servlet的URL。 #### 6. HTTP头部控制 在JSP页面中,使用`<meta http-equiv="pragma" content="no-cache">`等...
在Servlet端,我们需要处理这个POST请求,获取传入的参数,进行业务处理,然后返回结果。以下是一个基础的Servlet实现: ```java import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException...
在压缩包文件名称列表中的"708FormServlet"可能是项目的源代码文件,其中包含了实现上述功能的Servlet类。这个类可能包含了处理注册和登录请求的方法,以及设置字符编码和应用过滤器的配置。 总的来说,这个主题...
在Web开发领域,JSP(JavaServer Pages)、JavaBean 和 Servlet 是 Java Web 开发的基础技术之一,尤其是在早期的 Java Web 应用程序开发中占据了极其重要的地位。这些技术共同构建了一个完整的服务器端应用程序框架...
Servlet提供了基本的服务器端处理能力,而Struts则通过其MVC架构和丰富的功能,帮助开发者构建出结构清晰、易于维护的Web应用程序。理解并熟练掌握这两个技术对于Java Web开发人员来说至关重要。
5. **安全性**:Tomcat支持多种安全模型,如Basic Auth、Form Auth等,这涉及到`javax.servlet.security`包中的接口和类。`org.apache.catalina.authenticator`包包含了Tomcat的认证实现。 6. **过滤器链**:...