1 package com.ouyang.dao; 2 3 import java.io.IOException; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 import org.apache.catalina.filters.AddDefaultCharsetFilter; 14 15 @WebServlet("*.do") 16 public class CustomerServlet extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 protected void doGet(HttpServletRequest request, 20 HttpServletResponse response) throws ServletException, IOException { 21 doPost(request, response); 22 } 23 24 protected void doPost(HttpServletRequest request, 25 HttpServletResponse response) throws ServletException, IOException { 26 27 String servletPath = request.getServletPath(); 28 29 String methodName = servletPath.substring(1, servletPath.length() - 3); 30 31 try { 32 Method method = getClass().getDeclaredMethod(methodName, 33 HttpServletRequest.class, HttpServletResponse.class); 34 method.invoke(this, request, response); 35 } catch (Exception e) { 36 e.printStackTrace(); 37 } 38 39 } 40 41 private void add(HttpServletRequest request, HttpServletResponse response) { 42 System.out.println("add"); 43 44 } 45 46 private void query(HttpServletRequest request, HttpServletResponse response) { 47 System.out.println("query"); 48 49 } 50 51 private void delete(HttpServletRequest request, HttpServletResponse response) { 52 System.out.println("delete"); 53 54 } 55 }
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 <a href="add.do">Add</a> 11 <br> 12 <br> 13 14 <a href="query.do">Query</a> 15 <br> 16 <br> 17 18 <a href="delete.do">Delete</a> 19 <br> 20 <br> 21 22 </body> 23 </html>
难点有二:
1.url-pattern 采用" .do "来映射
2.采用反射机制调用对应的方法
优点:
1.便于维护