一个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();//此时格式“*.do"
methodName=methodName.substring(,methodName.length()-);//此时格式"*"      //利用反射获取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文件,并且点击其超链接,可以在控制台中显示出,相应的数据说明成功

JavaWeb:一个Servelt多个请求的更多相关文章

  1. 一个完整的Http请求

    一个完整的http请求,通常有以下7点: 1.建立tcp连接 2.web浏览器web服务器发送请求命令 3.web浏览器发送请求头信息 4.web服务器应答 5.web服务器发送应答信息 6.web服 ...

  2. 无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。

    新建一个MVC4的项目,引用DAL后,将DAL的连接字符串考入: <connectionStrings>     <add name="brnmallEntities&qu ...

  3. “无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性 “之解决

    今天在学习插件系统设计的时候遇到一个问题:“System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型. 于是百度一下,很多内容都差不多 ...

  4. 使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)

    在Web Application中,有个问题就是:“我怎么来判断一个http请求到底是通过按F5刷新的请求还是正常的提交请求?” 相信了解ASP.NET的人知道我在说什么,会有同感,而且这其实不是一个 ...

  5. 实现一个简单的http请求工具类

    OC自带的http请求用起来不直观,asihttprequest库又太大了,依赖也多,下面实现一个简单的http请求工具类 四个文件源码大致如下,还有优化空间 MYHttpRequest.h(类定义, ...

  6. 一个标准的AJAX请求

    这是一个标准的ajax请求: $.ajax({ type:"post", url:basePath+"/resourcePush/operationLog", ...

  7. 一个简易的Http请求转发器

    这两天一直再看微信开发,临时在我的电脑搭了个IIS服务器做微信开发,外网也能访问了,关键是,调试太麻烦了!! 我写完代码,要将代码发布到IIS才能接收微信消息,可是在这个过程中,我不知道微信发过来的是 ...

  8. wpf prism4 出现问题:无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。

    WPF Prism 框架 程序 出现 问题: 无法加载一个或多个请求的类型.有关更多信息,请检索 LoaderExceptions 属性. 1.开始以为是配置的问题,找了半天,最后原来是有个依赖类库没 ...

  9. 一个完整的http请求响应过程

    一. HTTP请求和响应步骤   图片来自:理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的. 二.TCP/IP协 ...

随机推荐

  1. S-Nim HDU - 1536

    #include<iostream> #include<cstdio> #include<cstring> #include<vector> using ...

  2. 报错 hint: Updates were rejected because the remote contains work that you do 解决方法

    1. git pull origin master --allow-unrelated-histories 2.git pull origin master 3.git init 4.git remo ...

  3. svn: 提交终止

    今天我遇到了svn 的问题  svn: 提交终止: “/var/www/modelfinance/modules/incomereport/views/purchase” 处于冲突状态 冲突状态搞的我 ...

  4. nginx开启fileinfo扩展

    //实现网址 https://blog.csdn.net/m_nanle_xiaobudiu/article/details/80838424 (1) (2).make && make ...

  5. maven中 install的install:install的区别

    如果一个项目,你想安装jar包到本地仓库,可能会报The packaging for this project did not assign a file to the build artifact ...

  6. nodejs利用sequelize-auto 根据数据库的table 生成model

    1.打开cmd命令窗口,安装sequelize-auto npm install -g sequelize-auto 在使用sequelize-auto之前需要安装全局的mysql(举例mysql) ...

  7. 套接字编程,建立连接connect,绑定套接字bind

    1.建立连接 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 参数sockfd是由函数socket创建 ...

  8. 正则表达式test()和exec()、 search() 和 replace()用法实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. axure rp安装

    axure rp安装 1◆ axure rp 文件下载   2◆创建安装目录     3◆ 安装图解 4◆汉化 替换   5◆ 使用   success     1★AxureRP 8.0安装包 2★ ...

  10. POJ 1001 Exponentiation(大数运算)

    POJ 1001 Exponentiation 时限:500 ms   内存限制:10000 K 提交材料共计: 179923   接受: 43369 描述:求得数R( 0.0 < R < ...