BaseServlet扩展了的HttpServlet,来实现减少Servlet数量
2013-05-10 00:09
369 查看
调用顺序:
1.BaseServlet类
package czb.utils; import java.io.IOException;import java.lang.reflect.Method;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; // 扩展Httpservlet用户请求某个servlet的url为:/PersonServlet?metd=savepublic abstract classBaseServlet extends HttpServlet { private static final longserialVersionUID= 1L; @Override public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException { req.setCharacterEncoding("UTF-8"); // 获取参数 String metd = req.getParameter("metd"); if (metd == null || metd.trim().equals("")) { metd= "execute"; } try { // 通过反射去调子类的方法,获取实现类的方法反射save(req,reps) Method method = this.getClass().getMethod(metd, //this是指实现类的实例对象 HttpServletRequest.class, HttpServletResponse.class); // 调用的实现类的方法 method.invoke(this, req, resp); }catch(Exception e) { thrownew RuntimeException(e); } } public void execute(HttpServletRequest req, HttpServletResponse resp) throws Exception { resp.sendError(406,"至少重写一个默认的方法、、、、、"); }}
2.BaseServlet的实现类
package czb.servlet; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import czb.utils.BaseServlet; public class PersonServlet extends BaseServlet { private static final longserialVersionUID= 1L; public void save(HttpServletRequestreq, HttpServletResponse resp) throws Exception { String name = req.getParameter("name"); System.err.println("你的姓名是:" + name + ",你在操作保存。。"); } public void del(HttpServletRequestreq, HttpServletResponse resp) throws Exception { System.err.println("你在操作删除。。"); } public voidupdate(HttpServletRequest req, HttpServletResponse resp) throws Exception { String name = req.getParameter("name"); System.err.println("你的姓名是:" + name + ",你在操作更新。。"); } }
3.测试
<body> <form action="<c:url value='/PersonServlet?metd=save'/>"method="post"> <input type="text"name="name"><br/> <input type="submit"><br/> </form> <a href="<c:url value='/PersonServlet?metd=del'/>">查询</a> <hr/> <form action="PersonServlet" method="post"> Name:<input type="text" name="name"id="nm"> <input type="submit" value="删除"> </form> <br/> <a href="javascript:_go();">GO</a></body><script type="text/javascript"> function_go(){ var nm=document.getElementById("nm").value; var rul = "StudServlet?metd="+nm; //对url进行编码 url=encodeURI(url); window.location=url; } </script>
相关文章推荐
- BaseServlet扩展了的HttpServlet,包装Request来处理中文乱码
- 利用java类的反射机制,实现了 映射 获得post(get)的参数 的BaseServlet
- servlet第2讲(下集)----通过HttpServlet实现一个用户登录网站(继承HttpServlet)
- jQuery实现购物车物品数量的加减(减到1时不能减少)
- java一个类 继承HttpServlet 和实现Servlet区别
- 可扩展的SockBase设计和实现
- js——input框实现淘宝一样的点击后商品数量的增加和减少
- servlet基础,如何实现一个servlet,servletConfig,HTTPServlet,ServletContext
- Android实现仿淘宝购物车增加和减少商品数量功能demo示例
- 精研Servlet,HttpServlet的实现追究
- js实现购物车数量的增加与减少,js实现购物车数量的自增与自减
- android中使用BaseAdapter的实现灵活扩展的ListView列表
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习BaseViewHolder扩展功能的实现代码学习(四)
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习BaseViewHolder扩展功能的实现代码学习(四)
- 用Servlet中的HttpServlet实现登录验证码功能
- javaweb servlet开发之servlet抽取(抽取基类减少servlet类数量)
- Servlet--HttpServlet实现doGet和doPost请求的原理
- Spring+Shiro+Servlet实现轻量未读消息数量推送
- javaWeb中BaseServlet的实现
- 浏览器到Servlet的HttpServlet的简单实现、底层实现