如何实现一个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?????”???????“?????”???????????????????????????????
????????????????????????????