zoukankan      html  css  js  c++  java
  • JavaWeb:一个Servelt多个请求

    一个Servelt多个请求

    基础模拟

    方法一:使用switch方法

     一、方法介绍

    • 方法:switch
    • 优点:方法简单,明了
    • 缺点:维护麻烦,保密性不好

    二、代码实现

    1、servlet类

    package servlet;
    /**
     * 使用参数进行多个请求
     */
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/CustomerServelet")
    public class CustomerServelet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String method=request.getParameter("method");
            switch (method){
                case "add":
                    add(request,response);
                    break;
                case "update":
                    update(request,response);
                    break;
                case "delet":
                    delet1(request,response);
                    break;
                    default:
                        break;
            }
        }
    
      //删除
    private void delete(HttpServletRequest request, HttpServletResponse response) { System.out.println("delete"); }   //更新 private void update(HttpServletRequest request, HttpServletResponse response) { System.out.println("update"); }   //添加 private void add(HttpServletRequest request, HttpServletResponse response) { System.out.println("add"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } }

    2、jsp测试文件

    <body>
      <a href="CustomerServelet?method=add">Add</a>
      <a href="CustomerServelet?method=update">Update</a>
      <a href="CustomerServelet?method=delete">Delete</a>
    </body>

    方法二:使用Java反射方法

     一、方法介绍

    • 方法:Java反射
    • 优点:保密性好,易于维护
    • 缺点:比较麻烦

    二、代码实现

    1、servlet类

    package servlet;
    
    import mvcdemo.CriteriaCustomer;
    import mvcdemo.CustomerDAO;
    import mvcentity.Customer;
    import mvcimpl.CustomerDAOJdbcImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.lang.reflect.Method;
    import java.util.List;
    
    @WebServlet("*.do")
    //或者
    //@WebServlet("*.do")//符合“*.do”的格式,则映射到里面。
    public class CustomerServelet1 extends HttpServlet {
        private static final long serialVersionUID=1L;
    
        private CustomerDAO customerDAO=new CustomerDAOJdbcImpl();
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //得到请求路径,格式为“/add.do”
            String serveletPath=request.getServletPath();     //格式路径,获取方法名
            String methodName=serveletPath.substring(1);//此时格式“*.do"
            methodName=methodName.substring(0,methodName.length()-3);//此时格式"*"
    
         //利用反射获取methodName对应的方法
            try{
                Method method=getClass().getDeclaredMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
                method.invoke(this,request,response);
            }catch (Exception e){
                e.printStackTrace();
            }
    
        }
    
        //删除private void delete(HttpServletRequest request, HttpServletResponse response) throws  ServletException,IOException{
            System.out.println("delete");
        }
    
      //更新
    private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ System.out.println("update"); } //增加private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{       System.out.println("add"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response); } }

     2、jsp测试文件

    <body>
        <a href="add.do">Add</a>
        <a href="update.do">Update</a>
        <a href="delete.do">Delete</a>
    </body>

    三、说明

    当运行jsp文件,并且点击其超链接,可以在控制台中显示出,相应的数据说明成功

  • 相关阅读:
    WPF学习之路(八)页面
    面试题整理:C#(一)
    [转载] Tomcat架构分析
    [转载] ConcurrentHashMap原理分析
    [转载] Java并发编程:Lock
    [转载] KAFKA分布式消息系统
    [转载] Java并发编程:Callable、Future和FutureTask
    [转载] Java线程池框架源码分析
    [转载] 红黑树(Red Black Tree)- 对于 JDK TreeMap的实现
    [转载] RED-BLACK(红黑)树的实现TreeMap源码阅读
  • 原文地址:https://www.cnblogs.com/hahayixiao/p/10175181.html
Copyright © 2011-2022 走看看