servlet的应用------request对象和bean实体的反射关系
public class FormBeanVO{
public <T> T getFormBean(HttpServletRequest request, Class<T> k) {
try {
T o = k.newInstance();
for(Method m : k.getDeclaredMethods()) {
String mName = m.getName();
String requestName = request.getParameter(setLower(mName.substring(3)));
if(requestName == null || "".equals(requestName)) continue;
else {
if(mName.startsWith("set")) {
if(m.getParameterTypes()[0].equals(int.class) ||
m.getParameterTypes()[0].equals(Integer.class)) {
m.invoke(o, Integer.valueOf(requestName));
}
else if(m.getParameterTypes()[0].equals(boolean.class) ||
m.getParameterTypes()[0].equals(Boolean.class)) {
m.invoke(o, Boolean.valueOf(requestName));
}
else if(m.getParameterTypes()[0].equals(String.class)) {
m.invoke(o, requestName);
}
else if(m.getParameterTypes()[0].equals(float.class) ||
m.getParameterTypes()[0].equals(Float.class)) {
m.invoke(o, Float.valueOf(requestName));
}
else if(m.getParameterTypes()[0].equals(long.class) ||
m.getParameterTypes()[0].equals(Long.class)) {
m.invoke(o, Long.valueOf(requestName));
}
else if(m.getParameterTypes()[0].equals(Timestamp.class)) {
m.invoke(o, Timestamp.valueOf(requestName));
}
}
}
}
return o;
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
private String setLower(String s) {
StringBuilder builder = new StringBuilder(s);
String first = s.substring(0, 1).toLowerCase();
builder.setCharAt(0, first.charAt(0));
return builder.toString();
}
}
分享到:
相关推荐
76 5.5.2 JavaBean动作 78 5.6 隐式对象 78 5.6.1 request对象 78 5.6.2 response对象 78 5.6.3 application对象 78 5.6.4 out对象 79 5.6.5 page对象 79 5.6.6 session对象 79 5.6.7 exception对象 80 5.6.8 ...
Spring框架的@Autowired注解可以自动将依赖注入到bean中,但这里我们讨论的是基于Servlet和纯Java的BeanUtils自动装配,它们在原理上是相似的,都是利用反射和内省来实现对象的初始化和属性赋值。 总结起来,`...
EJB分为三种类型:会话Bean、实体Bean和消息驱动Bean。它们能够自动处理事务管理、安全性、持久性等复杂任务。 - **JavaBean**:这是一种遵循特定编码约定的Java类,用于封装数据或业务逻辑。JavaBean通常用于构建...
- **会话Bean、实体Bean**:掌握Session Beans、Entity Beans的不同类型和应用场景。 - **消息驱动Bean**:了解MDB的概念及其在异步消息处理中的作用。 ### 17. 应用服务器配置 - **WebLogic、JBoss**:学习常见...
- **访问CGI变量**:通常使用request对象的getHeader()等方法。 #### 4. Cookie与Session的作用、区别 - **Cookie**:存储在客户端的信息,用于识别用户。 - **Session**:服务器端保存用户会话状态的一种机制。 ...
2. **JPA(Java Persistence API)**:取代了EJB中的实体Bean,提供统一的ORM(对象关系映射)规范。 3. **JTA(Java Transaction API)**:管理分布式事务,确保跨多个数据源的事务一致性。 4. **JAAS(Java ...
**读取配置文件**:读取`hibernate.cfg.xml`和实体映射文件(`*.hbm.xml`),并创建SessionFactory对象。 2. **打开Session**:通过SessionFactory获取Session实例。 3. **开始事务**:开启一个新的事务。 4. **...
- **高性能**:利用Java反射机制,Hibernate能够高效地管理和操作数据库,实现对象关系映射(Object-Relational Mapping, ORM),大大简化了数据访问层的编码工作。 - **广泛的支持**:Hibernate支持多种关系型...
20. EJB分为会话bean、消息驱动bean和实体bean,满足不同场景需求。 21. 软件业发展迅速,国内注重速度,但质量和技术积累需提升。 22. Java多线程涉及线程创建、同步、并发控制。 23. 文件加密技术包括对称加密、非...
3. request对象读取客户端请求,通过request.getParameter()获取CGI变量,getRealPath()获取JSP真实路径。 4. Cookie用于持久化用户信息,Session用于跟踪用户会话。Cookie存储在客户端,Session存储在服务器端。 ...
8. **EJB 3.0**:了解企业级Java Bean,包括实体Bean、会话Bean和消息驱动Bean。学习如何在WebLogic 8或Jboss上部署和使用。 最后,实践一些常见技术: 1. **图片验证码**:使用JSP和Servlet实现。 2. **发送邮件**...
实体Bean则用来表示持久化对象。 #### 17. 学习主流的J2EE应用服务器如WebLogic、JBoss等。 应用服务器是部署和管理Java企业应用的重要平台。WebLogic和JBoss都是知名的J2EE应用服务器,它们提供了丰富的功能和...
在学习中也需要掌握Java反射机制,它允许在运行时分析和操作类和对象。 Java SE 6.0、Java SE 7.0、Java SE 8.0等不同版本的Java平台文档和规范为开发者提供了各自版本支持的API和新特性。例如,Java SE 8中引入了...
- 企业级Java Bean,包括Session Bean和Entity Bean。 #### 7. 多线程 - Java中的多线程机制,提高程序的并发执行能力。 #### 8. 文件加密技术 - 使用加密算法保护文件的安全性。 #### 9. 软件开发生命周期 - ...
理解web.xml配置、web应用结构和Servlet生命周期。熟练使用request、response对象,以及ServletContext类。了解HTTP协议基础,掌握Cookie和Session管理用户状态。JSP结合了HTML和Java,学习JSP语法、JSTL标签库以及...