才开始学的时候我们往往都是一个请求对应一个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里面的某个方法的话就直接写 类名/方法名