通用的Servlet

才开始学的时候我们往往都是一个请求对应一个Serlvet,这样的话就会显得很麻烦。但是我们可以写一个通用的Serlvet,这样就可以少写很多的Servlet类。

1.两种配置通用Servlet的访问路径

1)@WebServlet("/BookServlet/*")

2)xml文件中的配置

<servlet>	
  	<!-- 类名 -->
    <servlet-name>BookServlet</servlet-name>
    <!-- 全类名 -->
    <servlet-class>org.lanqiao.servlet.BookServlet</servlet-class>
  </servlet>

  <servlet-mapping>
  	<!-- 类名 -->
    <servlet-name>BookServlet</servlet-name>
    <!-- 访问路径    *代表全部 -->
    <url-pattern>/BookServlet/*</url-pattern>
  </servlet-mapping>

2.通用Serlvet的写法

package org.lanqiao.servlet;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedHashSet;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.lanqiao.entity.Book;
import org.lanqiao.entity.BookPage;
import org.lanqiao.entity.User;
import org.lanqiao.service.BookService;
import org.lanqiao.service.UserService;
import org.lanqiao.util.DateUtil;

import com.mysql.jdbc.StringUtils;

public class BookServlet extends HttpServlet {

	public BookServlet() {
		super();
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取请求的URI
		String requestURI = request.getRequestURI();
		//截取方法名
		String methodName = requestURI.substring(requestURI.lastIndexOf("/") + 1);
		//定义一个Method变量
		Method method;
		try {
			//通过反射来获取方法名对应的方法
			method = this.getClass().getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
			//执行该方法
			method.invoke(this, request, response);
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	}
}

以上的通用方法是写在Get请求方法里面的,如果是Post请求,吧上面的代码复制到doPost方法里面就行了。

jsp里面你要调Servlet里面的某个方法的话就直接写      类名/方法名

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值