test.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="UserManager?method=add">添加</a>
<a href="UserManager?method=delete">删除</a>
<br>
<hr>
<a href="add.do">添加</a><br><br><br><br>
<a href="delete.do">删除</a>
</body>
</html>
根据地址的参数来实现servlet
UserManage.java
public class UserManager extends HttpServlet {
private static final long serialVersionUID = 1L;
///UserManager
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String method=request.getParameter("method");//获取参数
if("add".equals(method)){
add(request,response);
}else if("delete".equals(method)){
delete(request,response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("add");
}
protected void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("delete");
}
}
根据地址来实现servlet
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 UserManagerR extends HttpServlet {
private static final long serialVersionUID = 1L;
//*.do
//add.do/delete.do
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String servletPath=request.getServletPath(); //获取servlet路径
System.out.println(servletPath);//点击添加时:结果:/ add.do
String path=servletPath.substring(1);//截取字符串 获取1位置及以后的内容
String methodName=path.substring(0,path.length()-3); // add
try {
//反射
Method method=getClass().getDeclaredMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
method.invoke(this, request,response); //动态方法调用;
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("add");
}
protected void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("delete");
}
}