封装BaseServlet
package com.controller;
import java.io.IOException;
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 abstract class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("/") + 1);
if (path.lastIndexOf(".") >= 0) {
path = path.substring(0, path.lastIndexOf("."));
}
Class<?> claz = this.getClass();
try {
Method method = claz.getDeclaredMethod(path, HttpServletRequest.class, HttpServletResponse.class);
method.invoke(this, request, response);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(path + "路径错误, 请检查!");
}
}
}
继承BaseServlet
package com.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/test/*")
public class News extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doTest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("进来了");
response.getWriter.write("{\"code\":0}");
}
}
Ajax请求接口
$.ajax({
url: 'localhost:8044/test/doTest.do',
success: function(data){
console.log('data');
}
})