java-web学习-Servlet 优化

package com.quan.web.servlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * 替换HttpServlet, 根据请求的最后的最后一段路径,来进行方法分发 */ public class BaseServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取请求的路径 String requestURI = req.getRequestURI(); // 获取最后一段的请求路径 int index = requestURI.lastIndexOf('/'); String methodName = requestURI.substring(index + 1); // 获取this 对象的 字节码对象class Class<? extends BaseServlet> aClass = this.getClass(); // 获取方法的Method 对象 try { Method method = aClass.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class); // 执行方法 method.invoke(this,req,resp); } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { throw new RuntimeException(e); } } }
package com.quan.web.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/user/*") public class UserServlet extends BaseServlet { public void selectAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(" selectAll "); } public void addAll(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(" addAll "); } }
免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
THE END
二维码
共有 0 条评论