javaWeb中BaseServlet的实现

来源:互联网 发布:vs2015怎么编译c语言 编辑:程序博客网 时间:2024/05/14 10:12

javaWeb中BaseServlet的实现

在本baseServlet 中实现了访问方法的重写,以后的user 等操作都可以继承这个BaseServlet达到简易编写的效果


话不多说上代码:

    @WebServlet("/base")public class BaseServlet extends HttpServlet {@Overridepublic void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    try {        // 1.获取子类  创建子类或者调用子类的时候 this代表的是子类对象        @SuppressWarnings("rawtypes")        Class clazz = this.getClass();        //System.out.println(this);        // 2.获取请求的方法        String m = request.getParameter("method");        if(m==null){            m="index";        }        //System.out.println(m);        // 3.获取方法对象        Method method = clazz.getMethod(m, HttpServletRequest.class, HttpServletResponse.class);        // 4.让方法执行 返回值为请求转发的路径        String s=(String) method.invoke(this, request,response);//相当于 userservlet.add(request,response)        // 5.判断s是否为空        if(s!=null){            request.getRequestDispatcher(s).forward(request, response);        }    } catch (Exception e) {        e.printStackTrace();        throw new RuntimeException();    } }public String index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    return null;}}

这样在以后的开发中就可以使用BaseServlet了
例如:实现用户登录

在页面访问链接:

<li><a href="${pageContext.request.contextPath }/```user?method=registUI">注册</a></li>```

可以

@WebServlet("/user")public class UserServlet extends BaseServlet {public String registUI(HttpServletRequest request, HttpServletResponse response) {return "/jsp/register.jsp";}

其他需要实现的访问页面类似

作者:crose / 1341798397@qq.com

原创粉丝点击