package web;
import java.io.IOException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String action = request.getParameter("action");
//将本类转为字节码
Class clazz = this.getClass();
//在本类中查找是否有对应方法
//public * action(HttpServletRequest , HttpServletResponse)
Method method = clazz.getMethod(action, HttpServletRequest.class , HttpServletResponse.class);
//如果有
if(method != null) {
//调用该方法
String desPath = (String)method.invoke(this, request , response);
if(desPath != null)
//转发
request.getRequestDispatcher(desPath).forward(request, response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String add(HttpServletRequest request, HttpServletResponse response) {
//有关添加的Servlet操作
System.out.println("添加");
//返回字符串用于service方法转发页面
return "add.jsp";
}
public String del(HttpServletRequest request, HttpServletResponse response) {
//有关删除的Servlet操作
System.out.println("删除");
//返回字符串用于service方法转发页面
return "del.jsp";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- action带参数,在Testservlet页面使用request获取-->
<a href = "${pageContext.request.contextPath}/TestServlet?action=add">添加</a>
<a href = "${pageContext.request.contextPath}/TestServlet?action=del">删除</a>
</body>
</html>