Servlet学习:Servlet部分优化

2019-02-22  本文已影响3人  lanmoyingsheng

将多个Servlet优化成一个,在基类的service方法中利用反射做转发。

package com.heihei.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

@WebServlet(name = "BaseServlet")
public class BaseServlet extends HttpServlet {

    @Override
    public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;

        String method = request.getParameter("method");

        try {

            Method m = this.getClass().getDeclaredMethod(method, request.getClass(), response.getClass());
            m.invoke(this, request, response);

        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

当然也可以在本类的service中做转发,但是不如在一个地方坐统一处理,还有没有面向对象的思想。

上一篇 下一篇

猜你喜欢

热点阅读