当前位置:网站首页>Servlet optimization
Servlet optimization
2022-07-22 10:35:00 【Hua Weiyun】
Some optimized packaging
In order to be able to handle different requests , We have to be in service Method to judge , Then write different business processes , This can be achieved , But every one of them Servlet Classes will have similar code , In response to this question , Is there any strategy that can be optimized ?
package jgd;import javax.servlet.*;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import java.io.IOException;public class ServletDemo5 implements Servlet { public void init(ServletConfig servletConfig) throws ServletException { } public ServletConfig getServletConfig() { return null; } public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {// Depending on the way the request is made , Carry out separate treatment // Get request method // First convert to http Logic under the agreement HttpServletRequest request = (HttpServletRequest) servletRequest;// Get the method String method = request.getMethod();// Judge if ("GET".equals(method)) {// get Processing logic of mode } else if ("POST".equals(method)) {// post Processing logic of mode } } public String getServletInfo() { return null; } public void destroy() { }}
Like this code up here , I don't want to write logical judgments every time I write , This is a piece of repeated code . I don't want to write every time . There is not much logic processing here , If a lot of words , How should we behave ? If we need to deal with it like this every time , We should make encapsulated calls .
Now we define a class by ourselves
package jgd;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;public class MyHttpServlet implements Servlet { public void init(ServletConfig servletConfig) throws ServletException { } public ServletConfig getServletConfig() { return null; } public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {// Depending on the way the request is made , Carry out separate treatment // Get request method // First convert to http Logic under the agreement HttpServletRequest request = (HttpServletRequest) servletRequest;// Get the method String method = request.getMethod();// Judge if ("GET".equals(method)) { doGet(servletRequest, servletResponse);// get Processing logic of mode } else if ("POST".equals(method)) {// post Processing logic of mode doPost(servletRequest, servletResponse); } } protected void doPost(ServletRequest servletRequest, ServletResponse servletResponse) { } protected void doGet(ServletRequest servletRequest, ServletResponse servletResponse) { } public String getServletInfo() { return null; } public void destroy() { }}
We define the method , The parameters are well arranged . You can let subsequent classes inherit to this class . Then realize the call of unified functions .
Later, it is simplified a lot , This is also the benefit of inheritance . It is also a function package .
package jgd;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebServlet;@WebServlet("/demo6")public class ServletDemo6 extends MyHttpServlet { @Override protected void doGet(ServletRequest servletRequest, ServletResponse servletResponse) {// super.doGet(servletRequest, servletResponse); System.out.println("get..."); } @Override protected void doPost(ServletRequest servletRequest, ServletResponse servletResponse) {// super.doPost(servletRequest, servletResponse); System.out.println("post.."); }}
边栏推荐
- Servlet篇章一
- New product release: VGA display driver module for bus video monitoring
- [814. Binary tree pruning]
- @resource和@autowired的区别
- mysql中的字段如何选择合适的数据类型呢?
- 从零复现PyTorch版(3)
- 微信小程序开发学习6(基础加强之使用npm包和全局数据共享及分包【Tab底栏案例改进】)
- Recommendation of top 10 mainstream pressure / load / performance testing tools
- [explanation of PTA program design topic] [English version] [6-5 use function to verify Goldbach conjecture]
- 代码的一些优化
猜你喜欢
随机推荐
【信息收集】从FoFa—API接口数据写入TXT和Excel
11 classification maintenance of commodity system in gulimall background management
mysql中的字段如何选择合适的数据类型呢?
网页保存为pdf神器(可自定义编辑)—Print Edit WE
A new colleague from the company made typora perfect! Too tough
Request获取请求行数据和请求头数据
Execution failed for task ‘:app:kaptDevDebugKotlin‘.
QUuid
智能手机天线调谐
能量原理与变分法笔记02:变分问题 变分和微分运算能交换次序 欧拉方程
什么是FastAPI异步框架?(全面了解)
[PTA程序设计题目讲解][英文版][6-5 使用函数验证哥德巴赫猜想]
BigInteger :new BigInteger(tokenJson.getBytes()).toString(16)什么意思
i18n 是什么,有什么作用
halcon系列(2):超级盒子(Hyperboxes)
金仓数据库KMonitor使用指南--2. 监控指标
@resource和@autowired的区别
壁纸背景墙/头像/动态壁纸小程序源码-支持用户投稿-带部分采集功能+搭建教程
【814. 二叉树剪枝】
多线程 里面 使用AtomicInteger类,保证线程安全