利用反射实现一个Java文件书写多个Servlet,无框架
来源:互联网 发布:mac战网该服务器 编辑:程序博客网 时间:2024/05/22 13:28
1.提交请求的时候,加上一个method的请求参数。
method=getLimitStudent
2.在doGet或者doPost中获得请求参数。
String method = request.getParameter("method");
我们将会根据这个请求参数找到具体的方法,方法名应该和这个参数一样,我的参数为getLimitStudent ,所以我的方法名也是这个。
3.找到这个Java文件声明的类的类类型。
Class<? extends BaseStudent> c1 = this.getClass();
4.通过类类型和方法名找打方法,并执行。
try {Method m = c1.getDeclaredMethod(method, HttpServletRequest.class,HttpServletResponse.class);m.invoke(this, request,response);} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}其中request,response应该已他们的接口的类类型为标准,接口的类类型要大于参数的类,只要是接口的类类型就可以满足。
5.书写method方法即可。
下面是完整代码:
(为了这个方法可以重用,可以把具体的方法实现新申明一个类,然后继承这个有反射的类,实现重用的效果。)
BaseStudent.java
import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class BaseStudent extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = request.getParameter("method");Class<? extends BaseStudent> c1 = this.getClass();try {Method m = c1.getDeclaredMethod(method, HttpServletRequest.class,HttpServletResponse.class);m.invoke(this, request,response);} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}
继承该类的类的java文件。
StudentServlet.java
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.gpf.page.bean.Page;import com.gpf.page.bean.Student;import com.gpf.page.service.StudentService;import com.gpf.page.utils.WEBUtil;@WebServlet("/student")public class StudentServlet extends BaseStudent {private static final long serialVersionUID = 1L;private StudentService stuService = new StudentService();public void getLimitStudent(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int currentPage = Integer.parseInt(request.getParameter("currentPage"));Page<Student>pageStu = stuService.getLimitStudent(currentPage);pageStu.setPath(WEBUtil.getPath(request));request.setAttribute("pageStu", pageStu);request.getRequestDispatcher("WEB-INF/main.jsp").forward(request, response);}}
阅读全文
0 0
- 利用反射实现一个Java文件书写多个Servlet,无框架
- 一个servlet响应多个请求实现方式--反射
- Servlet笔记--利用反射实现多个请求使用同一个Servlet
- 如何利用反射机制实现前台页面共用一个servlet文件
- 利用Java反射实现插件框架
- 一个servlet处理多个请求 (利用反射获取方法)
- 利用抽象、多态实现无反射的绿色环保ORM框架
- 如何使用Servlet和filter实现:一个Servlet文件完成多个Servlet功能
- 五、用反射实现一个Servlet类里处理多个请求,不推荐重写service
- java,利用一个socket发送多个文件
- 理解Spring框架---利用,xml,java反射简单实现Spring
- 一个servlet中通过反射动态调用多个方法
- java web 利用Struts1实现上传多个文件
- java中利用反射编写通用servlet
- 利用xutils框架在Android上传多个文件到Struts搭建的java服务器
- 个java开源小博客框架blog4j,基于注解、反射实现的小框架(七)
- 利用INI文件实现界面无闪烁多语言切换
- 一个java开源小博客框架blog4j,基于注解、反射实现的小框架
- Fragment的创建与使用
- Qt中为应用程序添加图片
- 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
- Win10安装you-get视频解析程序
- Qt中创建菜单和工具栏
- 利用反射实现一个Java文件书写多个Servlet,无框架
- Oracle常用函数
- c# 值类型和引用类型的区别,装箱,拆箱。
- 添加圆角的4种方法
- 在cygwin上运行apache2
- AsyncTask
- 【二分匹配入门专题1】P
- 通俗易懂看RB-tree(一)
- 从数据库中查找数据并按首字母排序