BaseServlet的模板
来源:互联网 发布:云收银软件 编辑:程序博客网 时间:2024/05/16 14:10
如何编写BaseServlet
对于初学JavaWeb的同学来讲,写一个又一个servlet真是显得非常的冗余,所以最后都会整理一个BaseServlet来吧所有servlet共同的代码整合到一块,这样不仅大大提高了代码的可辨识度,而且使文件很清晰。使用时只需让别的servlet继承BaseServlet即可。
package cn.pxty.servlet;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;/** * BaseServlet用来作为其它Servlet的父类 * 一个类多个请求处理方法,每个请求处理方法的原型与service相同! * 原型 = 返回值类型 + 方法名称 + 参数列表 */@SuppressWarnings("serial")public class BaseServlet extends HttpServlet {@Overridepublic void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");//处理响应编码request.setCharacterEncoding("UTF-8");/** * 1. 获取method参数,它是用户想调用的方法 * 2. 把方法名称变成Method类的实例对象 * 3. 通过invoke()来调用这个方法 */String methodName = request.getParameter("method");Method method = null;/** * 2. 通过方法名称获取Method对象 */try {method = this.getClass().getMethod(methodName,HttpServletRequest.class, HttpServletResponse.class);} catch (Exception e) {throw new RuntimeException("您要调用的方法:" + methodName + "它不存在!", e);}/** * 3. 通过method对象来调用它 */try {String result = (String)method.invoke(this, request, response);if(result != null && !result.trim().isEmpty()) {//如果请求处理方法返回不为空int index = result.indexOf(":");//获取第一个冒号的位置if(index == -1) {//如果没有冒号,使用转发request.getRequestDispatcher(result).forward(request, response);} else {//如果存在冒号String start = result.substring(0, index);//分割出前缀String path = result.substring(index + 1);//分割出路径if(start.equals("f")) {//前缀为f表示转发request.getRequestDispatcher(path).forward(request, response);} else if(start.equals("r")) {//前缀为r表示重定向response.sendRedirect(request.getContextPath() + path);}}}} catch (Exception e) {throw new RuntimeException(e);}}}
0 0
- BaseServlet的模板
- BaseServlet的开发
- BaseServlet 的实现解析
- Servlet的抽取:BaseServlet
- BaseServlet
- BaseServlet
- BaseServlet
- BaseServlet
- BaseServlet
- BaseServlet
- BaseServlet
- 共用一个servlet(BaseServlet)模板来处理传统的多个servlet
- javaWeb中BaseServlet的代码
- 个人关于BaseServlet的见解
- javaWeb中BaseServlet的实现
- 通用的BaseServlet工具类
- BaseServlet思想(Struts2的思想)
- BaseServlet method找不到方法的问题
- 使用Java实现面向对象编程-->继承
- 学习《UNIX环境高级编程》笔记
- java中include动作和include指令的区别
- 开通了
- wpf 单例模式和异常处理
- BaseServlet的模板
- C++生成随机数
- 静态static
- 线段树的总结与习题acm杭电HDU1166
- Windows下创建定时计划任务
- 递归递推练习 J
- 进一步了解linux
- 动态规划--合唱队形
- Python中list、tuple、dict、set总结