如何实现一个Servlet中的多个功能

  • 2019 年 10 月 3 日
  • 笔记

??????Servlet??????

????????????????Servlet????????????????????????????????????????????????????????Servlet??

 

 

????

???????????UserServlet???????????????????????Servlet???????????????????Servlet?????????????????

package com.my.servlet;    import com.my.service.UserService;  import com.my.service.impl.UserServiceImpl;  import javax.servlet.annotation.WebServlet;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;    @WebServlet("/user")  public class UserServlet extends HttpServlet {      private UserService userService = new UserServiceImpl();      public String add(HttpServletRequest request,HttpServletResponse response){        userService.add();        request.setAttribute("mess","????");        return "r:add.jsp";    }        public String delete(HttpServletRequest request,HttpServletResponse response){          userService.delete();          request.setAttribute("mess","????");          return "f:add.jsp";      }      public String update(HttpServletRequest request,HttpServletResponse response){          userService.update();          request.setAttribute("mess","????");          return "add.jsp";      }      public String query(HttpServletRequest request,HttpServletResponse response){          userService.query();          request.setAttribute("mess","????");          return "add.jsp";      }    }      

??

 

????

????????????????FatherServlet???HttpServlet,?????Servlet??service()?????????????????UserServlet????????????????????????????????????????????????????????????UserServlet???????FatherServlet??service()??????????????????UserSerlvet?????????????UserServlet??????????????????FatherServlet??????????????????????????????????????????

 

???????????service()??????????????????????????????????????

 

FatherServlet

package com.my.servlet;        import javax.servlet.ServletException;    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;        public class FatherServlet extends HttpServlet {        @Override        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {            String m = req.getParameter("m");            if (m==null||"".equals(m)){                throw new RuntimeException("??????");            }                Class c = this.getClass();                try {                Method method = c.getMethod(m,HttpServletRequest.class,HttpServletResponse.class);                Object o =method.invoke(this,req,resp);                String rel =String.valueOf(o);                    //??????????????r:???  f:??                if (rel.startsWith("r:")){                   rel =  rel.substring(rel.indexOf(":")+1);                   resp.sendRedirect(rel);                }else if(rel.startsWith("f:")){                    rel = rel.substring(rel.indexOf(":")+1);                    req.getRequestDispatcher(rel).forward(req,resp);                }else {                    req.getRequestDispatcher(rel).forward(req,resp);                }            } catch (NoSuchMethodException e) {                throw new RuntimeException("??????????");            } catch (IllegalAccessException e) {                throw new RuntimeException("??????????");            } catch (InvocationTargetException e) {                throw new RuntimeException("??????????");            }        }    }    

??

 

 

UserServlet

package com.my.servlet;        import com.my.service.UserService;    import com.my.service.impl.UserServiceImpl;    import javax.servlet.annotation.WebServlet;    import javax.servlet.http.HttpServletRequest;    import javax.servlet.http.HttpServletResponse;    @WebServlet("/user")    public class UserServlet extends FatherServlet {        private UserService userService = new UserServiceImpl();          public String add(HttpServletRequest request,HttpServletResponse response){          userService.add();          request.setAttribute("mess","????");          return "r:add.jsp";      }            public String delete(HttpServletRequest request,HttpServletResponse response){            userService.delete();            request.setAttribute("mess","????");            return "f:add.jsp";        }        public String update(HttpServletRequest request,HttpServletResponse response){            userService.update();            request.setAttribute("mess","????");            return "add.jsp";        }        public String query(HttpServletRequest request,HttpServletResponse response){            userService.query();            request.setAttribute("mess","????");            return "add.jsp";        }        }  

??

 

 

????

??????????????????????????????????????????????????????

 

UserDao

package com.my.dao;        public interface UserDao {        public void add();        public void delete();        public void update();        public void query();    }    

??

 

UserDaoImpl

package com.my.dao.impl;        import com.my.dao.UserDao;        public class UserDaoImpl implements UserDao {        @Override        public void add() {            System.out.println("UserDao?????????");        }            @Override        public void delete() {            System.out.println("UserDao?????????");        }            @Override        public void update() {            System.out.println("UserDao?????????");        }            @Override        public void query() {            System.out.println("UserDao?????????");        }    }    

??

 

UserService

package com.my.service;        public interface UserService {        public void add();        public void delete();        public void update();        public void query();    }  

??

 

 

UserServiceImpl

package com.my.service.impl;        import com.my.dao.UserDao;    import com.my.dao.impl.UserDaoImpl;    import com.my.service.UserService;        public class UserServiceImpl implements UserService {            private UserDao userDao = new UserDaoImpl();        @Override        public void add() {            userDao.add();        }            @Override        public void delete() {            userDao.delete();        }            @Override        public void update() {            userDao.update();        }            @Override        public void query() {            userDao.query();        }    }    

??

 

UserServlet

package com.my.servlet;        import com.my.service.UserService;    import com.my.service.impl.UserServiceImpl;    import javax.servlet.annotation.WebServlet;    import javax.servlet.http.HttpServletRequest;    import javax.servlet.http.HttpServletResponse;    @WebServlet("/user")    public class UserServlet extends FatherServlet {        private UserService userService = new UserServiceImpl();          public String add(HttpServletRequest request,HttpServletResponse response){          userService.add();          request.setAttribute("mess","????");          return "r:add.jsp";      }            public String delete(HttpServletRequest request,HttpServletResponse response){            userService.delete();            request.setAttribute("mess","????");            return "f:add.jsp";        }        public String update(HttpServletRequest request,HttpServletResponse response){            userService.update();            request.setAttribute("mess","????");            return "add.jsp";        }        public String query(HttpServletRequest request,HttpServletResponse response){            userService.query();            request.setAttribute("mess","????");            return "add.jsp";        }        }  

??

 

 

FatherServlet

package com.my.servlet;        import javax.servlet.ServletException;    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;        public class FatherServlet extends HttpServlet {        @Override        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {            String m = req.getParameter("m");            if (m==null||"".equals(m)){                throw new RuntimeException("??????");            }                Class c = this.getClass();                try {                Method method = c.getMethod(m,HttpServletRequest.class,HttpServletResponse.class);                Object o =method.invoke(this,req,resp);                String rel =String.valueOf(o);                    //??????????????r:???  f:??                if (rel.startsWith("r:")){                   rel =  rel.substring(rel.indexOf(":")+1);                   resp.sendRedirect(rel);                }else if(rel.startsWith("f:")){                    rel = rel.substring(rel.indexOf(":")+1);                    req.getRequestDispatcher(rel).forward(req,resp);                }else {                    req.getRequestDispatcher(rel).forward(req,resp);                }            } catch (NoSuchMethodException e) {                throw new RuntimeException("??????????");            } catch (IllegalAccessException e) {                throw new RuntimeException("??????????");            } catch (InvocationTargetException e) {                throw new RuntimeException("??????????");            }        }    }  

??

 

 

add.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    <%@ taglib prefix="z" uri="http://mycompany.com" %>    <html>    <head>        <title>????</title>    </head>    <body>        <h1>??</h1>    ${mess}        </body>    </html>  

??

 

 

 

????

 

 

 

 

 

 

 

??????

?????????????????????????????????????????????????????????????????????????????

 

 

*****************************************************************************************************

????????https://www.cnblogs.com/zyx110/

???????

???????????????????????????????????“??????????????”?????????????“Java?????”???????“?????”???????????????????????????????

????????????????????????????