如何用一个servlet处理多个请求
一个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处理多个请求的更多相关文章
- Servlet(五):一个Servlet处理多个请求
一.为什么要使用一个Servlet来处理多个请求? 当浏览器发送了一次请求到服务器时,servlet容器会根据请求的url-pattern找到对应的Servlet类,执行对应的doPost或doGet ...
- 一个servlet处理多个请求(使用Method的反射机制)
方法一 可以通过在请求的时候加上参数,然后在servlet中获取请求的参数,再去调用对应的方法.达到一个servlet处理多个请求的目的 test.jsp: <%@ page language= ...
- 【WEB小工具】BaseServlet—一个Servlet处理多个请求
package cn.itcast.test.web.servlet; import java.io.IOException; import java.io.PrintWriter; import j ...
- BaseServlet,让一个servlet处理多个请求
BaseServlet 第一次学习servlet的时候是跟着传智播客免费的教学视频,其中崔希凡讲的是我学过自认讲的最好的一位,BaseServlet也是跟着他写过一次,当时很多东西不能理解,后来慢慢发 ...
- 怎么在一个servlet中实现多个功能 ?如何使一个Servlet处理多个请求?
自学javaweb一直不知道一个servelt可以有多个功能!看了别人代码才知道这个可以有! 平时你建立servelt时候你会吧doget和dopost这两个勾上,要想实现多个功能,你不必要勾选dog ...
- 一个servlet处理多个请求或者叫方法
http://blog.csdn.net/qq_25201665/article/details/52037607
- 一个servlet如何处理多个请求
页面1:表单的action=login?method=login 页面2:表单的action=login?method=insert ..... 然后通过method的值采用不同方法进行处理. 如下 ...
- Tomcat是一个Servlet容器?
"Tomcat是一个Servlet容器",这句话对于2019年的程序员应该是耳熟能详的. 单纯的思考一下这句话,我们可以抽象出来这么一段代码: class Tomcat { Lis ...
- (二)第一个Servlet
一.预备知识 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个 ...
随机推荐
- 【音乐欣赏】《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 ...
- ELK节点安装
ELK 安装参考链接 https://www.cnblogs.com/xialiaoliao0911/p/9599898.html setenforce 0sed -i s/enforcing/dis ...
- 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数
课本例题 /*输入两个正整数num1.num2,计算并输出它们的和.差.积.整数商和余数.*/ #include<stdio.h> int main() { int num1, num2; ...
- GO学习之 安装Go语言及搭建Go语言开发环境
一.下载 1.下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 2.版本的选择 Windows ...
- 如何通过Docker搭建一个swoft开发环境
本篇文章给大家分享的内容是关于如何通过Docker搭建一个swoft开发环境 ,内容很详细,有需要的朋友可以参考一下,希望可以帮助到你们. Swoft首个基于 Swoole 原生协程的新时代 PHP ...
- 安卓基础(LiveData DataBinding)
昨天因为有点事情,没有及时发表博客,昨天学习了LiveData和DataBinding,LiveData属于jetpack中的框架里面的,DataBinding可以进行数据绑定. 我分别利用这两部分知 ...
- 【Struts 编码】
EncodingFilter package k.filter; import javax.servlet.*; import javax.servlet.http.HttpServlet; impo ...
- 安卓之滚动视图ScrollView
(1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content (2)水平方向滚动时,layout_width要设置为wra ...
- canvas的beginPath和closePath
https://www.cnblogs.com/xuehaoyue/p/6549682.html https://segmentfault.com/a/1190000010330319 https:/ ...
- vim 一些操作
在ESC下 gg # 光标跳到开头 dG # 删除光标后的数据 dd # 删除光标所在行 gg dG # 删除全部 (光标跳到开头&删除光标后的数据) x # 删除当前光标下的字符 i # 编 ...
