package com.iyunti.core; import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.JdbcTemplate; public class Dispatcher extends Controller { private static final long serialVersionUID = 8396066198989032944L; private ServletContext servletContext = null; /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * ApplicationContext act = new ClassPathXmlApplicationContext( * "applicationContext.xml"); DataSource ds = (DataSource) * act.getBean("dataSource"); * * JdbcTemplate template = new JdbcTemplate(ds); String sql = * "select count(*) from T_ACCOUNT"; * * int totalRecord = template.queryForInt(sql); * * new Product().doGet(request, response); */ // Map<String, Class<?>> classMap = (Map<String, Class<?>>) // servletContext // .getAttribute("servletClassMap"); String uri = getUriString(request); // 获取要请求的servlet路径 String requestServletName = "com.iyunti.ec." + getActionString(uri); // 创建类的实例 Object obj = null; Class<?> clz = null; Method targetMethod = null; try { // 获取要使用的Servlet类 clz = Class.forName(requestServletName); if(clz.equals(null)){ logger.error("Servlet类不存在"); } obj = clz.newInstance(); // 获取Servlet类的doGet方法 targetMethod = clz.getDeclaredMethod("doGet", HttpServletRequest.class, HttpServletResponse.class); // 调用对象的方法进行处理 targetMethod.invoke(obj, request, response); } catch (Exception e) { logger.error(e.getMessage()); } loadJsp(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to * post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
相关推荐
在给定的场景中,用户通过一个网页上的JSP(Java Server Pages)来编辑Java源代码,然后这个代码被发送到服务器端,由Servlet处理动态编译和执行的过程。 首先,我们需要了解JSP的作用。JSP是Java Web开发的一种...
本篇文章将深入探讨如何利用Java的动态代理机制来提炼Servlet,实现更高效、更模块化的代码结构。 动态代理,是Java提供的一种运行时创建代理对象的技术,主要由java.lang.reflect包下的Proxy和InvocationHandler两...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
/* ... // Tell the dispatcher to invoke its servlet and include the output dispatcher.include(request, response); } // Finally, end the HTML output out.println("</body>"); } }
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) at org.spring...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
8.2 java本身的loader 52 8.3 Loader接口 53 8.4 Reloader接口 54 8.5 WebappLoader类 54 8.5.1 创建类载入器 55 8.5.2 设置repository 55 8.5.3 设置类路径 56 8.5.4 设置访问权限 56 8.5.5 开启新线程执行类的重新...
JSP網頁最後是轉譯為Servlet,從Java程式設計人員的角度來看,Servlet其實就是一個 Java類別,它實作Servlet介面,通常我們會繼承實作該介面的GenericServlet類別或HttpServlet類別。 基礎入門 如果您瞭解JSP中的...
`<jsp:directive>`)、脚本元素(如`<scriptlet>`, `<expression>`, `<declaration>`)、动作(如`<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:invoke>`)等,这些元素使得在页面中直接嵌入Java代码成为可能。...
4. 调用`Method.invoke()`方法执行目标方法,将前端传入的参数转化为Java对象并作为方法的参数。 5. 方法执行完成后,将结果转换为JSON格式或其他适合传输的数据格式,然后通过Ajax响应返回给前端。 这个设计大大...
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service...
`MyAppletB`类定义了一个Applet,它在`invoke`方法中通过构造`URL`对象发送HTTP请求到Servlet。这个请求包含SQL查询字符串参数,Servlet根据这个参数执行相应的数据库操作并将结果返回。Applet通过`URLConnection`...
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) at org.springframework.web.servlet.mvc.method....
在Java EE环境中,开发人员经常需要处理各种类型的文件,其中包括Word文档。`Java EE中jsp原格式展示word文档`这个主题涉及到的是如何在Web应用程序中以原始格式显示Word(.doc或.docx)文件,而不仅仅是将其转换为...
3. Tomcat 6.0:一个广泛使用的Java Servlet和JavaServer Pages容器,用于部署Web应用程序。 4. JDK 6.0:Java Development Kit,用于编译和运行Java代码的基础。 开发Java Web服务的步骤如下: 1. 创建Web服务...
10. **Java EE相关**:Servlet、JSP、MVC模式、Spring框架、MyBatis、Hibernate等企业级开发常用技术。 11. **Java 8及以后的新特性**:Lambda表达式、Stream API、Optional、日期时间API(java.time包)等。 12. ...
- 构造器、方法、字段的反射API:Class.newInstance(), Method.invoke()等。 9. **JDBC数据库编程** - Connection、Statement、PreparedStatement、ResultSet:处理数据库连接、执行SQL语句、获取查询结果。 - ...