利用反射实现一个servlet处理多个请求

本文介绍了如何利用反射机制优化servlet,使得一个servlet能处理多个请求。详细阐述了两种实现方式:一是通过请求名获取方法名,二是通过url路径传递方法名参数。方式二更优,可避免请求资源路径冲突,支持多个servlet处理多种请求。
摘要由CSDN通过智能技术生成
前言:

最近在用jsp+sevlet+Mysql知识写一个简单的博客系统,刚开始写的时侯没有了解到反射机制,所以便使用一个servlet处理一个请求的方式,这种方式无疑是不行的当你有成千上万个请求的时候难道要写成千上万个servlet嘛?

后来了解到反射机制可以实现一个servlet处理多个请求,有两种方法可以实现。

实现原理

不同的请求通过不同的方法来响应,反射起的作用是把执行方法名动态化,同过获取不同的请求传递来的方法名,执行不同的方法。

所以只需要在一个servlet里写多个方法来处理请求,而不需要写多个servlet来处理请求。反射所实现的功能便是在每次请求时,执行相应的方法。

实现步骤
方式一:利用请求名获取方法名
Servlet编写
@WebServlet(value = "*.do")
public class LoginServlet extends HttpServlet {
   
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
   
		//通过请求路径来获取执行方法名
		String servletPath = request.getServletPath();
        String methodName = servletPath.substring(servletPath.lastIndexOf("/")+1,servletPath.indexOf("."));
		try {
   
	            //利用反射获取方法
	            Method method = getClass().getDeclaredMethod(methodName,HttpServletRequest.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值