一个servlet处理多个请求,
原理:利用反射机制获取在selvlet类中的其他方法
1、前端页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试一个Servlet处理多个请求</title>
</head>
<body> <h1>一个Servlet处理多个请求</h1>
<hr>
<a href="queryEmp.do">查询员工信息</a>
<br/>
<br/>
<a href="addEmp.do">新增员工信息</a>
<br/>
<br/>
<a href="deleteEmp.do">删除员工信息</a>
<br/>
<br/>
<a href="queryEmpList.do">查询所有员工信息</a> </body>
</html> 2、web.xml配置
    <!-- 处理多个请求 -->
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.servlet.userservlet.CustomerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

3、servlet类
package com.servlet.userservlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method; /**
* 使用一个servlet处理多个请求
* @author 登风
* @date 2018年6月14日
*/
public class CustomerServlet 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 {
// 获取请求的URI地址信息
String url = request.getRequestURI();
// 截取其中的方法名
String methodName = url.substring(url.lastIndexOf("/")+1, url.lastIndexOf("."));
Method method = null;
try {
// 使用反射机制获取在本类中声明了的方法
method = getClass().getDeclaredMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
// 执行方法
method.invoke(this, request, response);
} catch (Exception e) {
throw new RuntimeException("调用方法出错!");
}
} private void queryEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行查询员工的方法...");
response.setContentType("text/html;charset=utf8");
PrintWriter pw = response.getWriter();
pw.println("<h1>查询员工的方法</h1>");
pw.flush();
pw.close();
} private void addEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行新增员工的方法!!!");
response.setContentType("text/html;charset=utf8");
PrintWriter pw = response.getWriter();
pw.println("<h1>执行了新增员工的方法。。。</h1>");
pw.flush();
pw.close();
} private void deleteEmp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行删除员工的方法...");
response.setContentType("text/html;charset=utf8");
PrintWriter pw = response.getWriter();
pw.println("<h1>删除员工的方法</h1>");
pw.flush();
pw.close();
} private void queryEmpList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("执行查询所有员工的方法...");
response.setContentType("text/html;charset=utf8");
PrintWriter pw = response.getWriter();
pw.println("<h1>查询所有员工的方法</h1>");
pw.flush();
pw.close();
}
}

网页反参结果


 

如何用一个servlet处理多个请求的更多相关文章

  1. Servlet(五):一个Servlet处理多个请求

    一.为什么要使用一个Servlet来处理多个请求? 当浏览器发送了一次请求到服务器时,servlet容器会根据请求的url-pattern找到对应的Servlet类,执行对应的doPost或doGet ...

  2. 一个servlet处理多个请求(使用Method的反射机制)

    方法一 可以通过在请求的时候加上参数,然后在servlet中获取请求的参数,再去调用对应的方法.达到一个servlet处理多个请求的目的 test.jsp: <%@ page language= ...

  3. 【WEB小工具】BaseServlet—一个Servlet处理多个请求

    package cn.itcast.test.web.servlet; import java.io.IOException; import java.io.PrintWriter; import j ...

  4. BaseServlet,让一个servlet处理多个请求

    BaseServlet 第一次学习servlet的时候是跟着传智播客免费的教学视频,其中崔希凡讲的是我学过自认讲的最好的一位,BaseServlet也是跟着他写过一次,当时很多东西不能理解,后来慢慢发 ...

  5. 怎么在一个servlet中实现多个功能 ?如何使一个Servlet处理多个请求?

    自学javaweb一直不知道一个servelt可以有多个功能!看了别人代码才知道这个可以有! 平时你建立servelt时候你会吧doget和dopost这两个勾上,要想实现多个功能,你不必要勾选dog ...

  6. 一个servlet处理多个请求或者叫方法

    http://blog.csdn.net/qq_25201665/article/details/52037607

  7. 一个servlet如何处理多个请求

    页面1:表单的action=login?method=login 页面2:表单的action=login?method=insert ..... 然后通过method的值采用不同方法进行处理. 如下 ...

  8. Tomcat是一个Servlet容器?

    "Tomcat是一个Servlet容器",这句话对于2019年的程序员应该是耳熟能详的. 单纯的思考一下这句话,我们可以抽象出来这么一段代码: class Tomcat { Lis ...

  9. (二)第一个Servlet

    一.预备知识 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个 ...

随机推荐

  1. 【音乐欣赏】《Sunflower》 - Post Malone / Swae Lee

    曲名:Sunflower 作者:Post Malone.Swae Lee [00:02.29]Ayy, ayy, ayy, ayy (ooh) [00:09.49]Ooh, ooh, ooh, ohh ...

  2. ELK节点安装

    ELK 安装参考链接 https://www.cnblogs.com/xialiaoliao0911/p/9599898.html setenforce 0sed -i s/enforcing/dis ...

  3. 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数

    课本例题 /*输入两个正整数num1.num2,计算并输出它们的和.差.积.整数商和余数.*/ #include<stdio.h> int main() { int num1, num2; ...

  4. GO学习之 安装Go语言及搭建Go语言开发环境

    一.下载 1.下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 2.版本的选择 Windows ...

  5. 如何通过Docker搭建一个swoft开发环境

    本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...

  6. 安卓基础(LiveData DataBinding)

    昨天因为有点事情,没有及时发表博客,昨天学习了LiveData和DataBinding,LiveData属于jetpack中的框架里面的,DataBinding可以进行数据绑定. 我分别利用这两部分知 ...

  7. 【Struts 编码】

    EncodingFilter package k.filter; import javax.servlet.*; import javax.servlet.http.HttpServlet; impo ...

  8. 安卓之滚动视图ScrollView

    (1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content (2)水平方向滚动时,layout_width要设置为wra ...

  9. canvas的beginPath和closePath

    https://www.cnblogs.com/xuehaoyue/p/6549682.html https://segmentfault.com/a/1190000010330319 https:/ ...

  10. vim 一些操作

    在ESC下 gg # 光标跳到开头 dG # 删除光标后的数据 dd # 删除光标所在行 gg dG # 删除全部 (光标跳到开头&删除光标后的数据) x # 删除当前光标下的字符 i # 编 ...