2.2 学习总结 之 servlet 的两次抽取
说在前面
| 昨天 | 完成了文件上出的学习和实践 |
| 今天 | 学习servlet的两次抽取,以加快编写工程的速度 |
一、servlet 抽取的原因:
刚刚学习使用servlet写后台,往往只使用一个servlet来处理一个功能,但是随着项目规模加大,页面增多,众多的servlet让人很是心烦,这时候就需要向上抽取serlvet了,即将servlet按照模块来划分,比如注册和登录的servlet就放到user的servlet中。
二、servlet 的第一次抽取
使用选择结构,页面提交请求是加上一个method的参数,表示同一模块的不同功能,到selvlet中获取 method 再判断调用哪个方法即:
1)界面的请求


......
2)servlet的处理

三、servlet的第二次抽取
使用反射,通过一个字符串,来找到一个方法
1、注意事项:
1)method所带参数,必须与方法名相同
2)方法必须是共有的(public)
2、界面请求相同
3、selvlet 处理
1)、创建基础selvlet 类,实现通过一个字符串,来找到一个方法
package com.me.web.servlet; import java.io.IOException;
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.lang.reflect.Method;
@WebServlet("/BaseServlet")
@SuppressWarnings("all")
public class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L; public BaseServlet() {
super();
} protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); try {
//1、获得请求的method的名称
String methodName = request.getParameter("method");
//2、获得当前被访问的对象的字节码对象
Class clazz = this.getClass();//ProductServlet.class ---- UserServlet.class
//3、获得当前字节码对象的中的指定方法
Method method = clazz.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
//4、执行相应功能方法
method.invoke(this, request,response); } catch (Exception e) {
e.printStackTrace();
}
} }
2)、其他的selvlet继承 BaseServlet 直接写相应的方法即可,不必再用选择结构判断!

2.2 学习总结 之 servlet 的两次抽取的更多相关文章
- Java学习笔记之---Servlet
Java学习笔记之---Servlet (一)如何实现Servlet 1.实现javax.servlet.Servlet接口: 2.继承javax.servlet.GenericServlet类: 3 ...
- 【学习笔记】Servlet的配置
为了让Servlet能响应用户的请求,需要将Servlet配置在Web应用中. 从Servlet3.0开始,配置Servlet有两种方式: l 在Servlet类中使用@WebServlet Anno ...
- SpringBoot整合Servlet的两种方式
SpringBoot整合Servlet有两种方式: 1.通过注解扫描完成Servlet组件的注册: 2.通过方法完成Servlet组件的注册: 现在简单记录一下两种方式的实现 1.通过注解扫描完成Se ...
- ElasticSearch 学习记录之Text keyword 两种基本类型区别
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两 ...
- 【SpringBoot】03.SpringBoot整合Servlet的两种方式
SpringBoot整合Servlet的两种方式: 1. 通过注解扫描完成Servlet组件注册 新建Servlet类继承HttpServlet 重写超类doGet方法 在该类使用注解@WebServ ...
- JavaWeb学习笔记之Servlet(一)
1. 引子: 当我们开始进入JavaWeb开发的学习时,我们就必须要和Servlet和HTTP这两个词进行打交道了,尤其是Servlet.即使到了后面使用JSP (我们知道JSP其本身就是一个Serv ...
- Javaweb学习(三):Servlet程序
好了,既然开发环境已经配置好了.那么我们首先要搞定得便是servlet了,至于为什么不先去研究jsp,这是因为jsp与servlet本就是一体两面,jsp其本身经过编译.载入.转化等步骤最终会成为se ...
- 服务器学习笔记之servlet
初衷 想学习下服务器这边的知识,制定了一条学习路线:java8--->servlet--->springMvc--->springBoot--->springCloud.在此当 ...
- 【学习】013 Servlet、Cookie、Session的简述
Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet ...
随机推荐
- 新闻网大数据实时分析可视化系统项目——2、linux环境准备与设置
1.Linux系统常规设置 1)设置ip地址 使用界面修改ip比较方便,如果Linux没有安装操作界面,需要使用命令:vi /etc/sysconfig/network-scripts/ifcfg-e ...
- springboot打包的问题可执行jar和不可执行jar
具体解释可以参看:https://www.cnblogs.com/liaojie970/p/9007577.html 如果只是想要依赖那么可以将springboot自带的打包插件换掉就可以了,换为如下 ...
- IdentityServer4专题之六:Resource Owner Password Credentials
实现代码: (1)IdentityServer4授权服务器代码: public static class Config { public static IEnumerable<Identity ...
- python2学习------基础语法5(文件操作)
1.文件内容读取 a.txt teestttttttttttttt teestttttttttttttt teestttttttttttttt teestttttttttttttt teesttttt ...
- Job 失败了怎么办?【转】
上一节讨论了 Job 执行成功的情况,如果失败了会怎么样呢? 修改 myjob.yml,故意引入一个错误: 先删除之前的 Job: 如果将 restartPolicy 设置为 OnFailure 会怎 ...
- 新闻网大数据实时分析可视化系统项目——21、大数据Web可视化分析系统开发
1.基于业务需求的WEB系统设计 2.下载Tomcat并创建Web工程并配置相关服务 下载tomcat,解压并启动tomcat服务. 1)新建web app项目 创建好之后的效果 2)对tomcat进 ...
- android中的简单animation(二)push up,push left,cross fade,hyperspace
animation_2.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- python集成开发环境Anaconda的安装
参考博文: anaconda在Linux下的安装 Linux下anaconda3的安装 Anaconda的安装.启用及停用的步骤 Python学习之Anaconda的使用及配置方法 Anaconda ...
- 043、Java中逻辑运算之实现位与操作
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 在excel表格里,为所有数字添上绿色小三角
在excel表格里,为所有数字添上绿色小三角的方法有4种: 1. 为一个单元格添加:直接在单元格里添加一个英文的逗号 2. 为一列数据添加:选中要添加绿色小三角的列,选择 数据-->分列--&g ...