当前位置: 首页 > news >正文

南宁网站建设教学推广平台排名前十名

南宁网站建设教学,推广平台排名前十名,WordPress上下拖动效果,建设工程施工合同的当事人包括文章目录 1、自定义MyWebServlet 注解2、创建HttpServlet文件3、加载项目中的所有以.java结尾的文件4、收集项目中带有MyWebServlet 的类对象 1、自定义MyWebServlet 注解 我们知道,tomcat是依据WebServlet注解去收集所有servlet类的。 import java.lang.annotati…

文章目录

  • 1、自定义@MyWebServlet 注解
  • 2、创建HttpServlet文件
  • 3、加载项目中的所有以.java结尾的文件
  • 4、收集项目中带有@MyWebServlet 的类对象

在这里插入图片描述

1、自定义@MyWebServlet 注解

我们知道,tomcat是依据@WebServlet注解去收集所有servlet类的。

import java.lang.annotation.*;//该注解可以应用于类、接口(包括注解类型)、枚举
@Target(ElementType.TYPE)//ElementType.TYPE
//该注解标记的元素可以被Javadoc 或类似的工具文档化
@Documented
//该注解的生命周期,由JVM 加载,包含在类文件中,在运行时可以被获取到
@Retention(RetentionPolicy.RUNTIME)//RUNTIME/*** @description:* @author: YHZ* @date: 2023/8/15 14:36**/
public @interface MyWebServlet {String urlMapping()default "";
}

2、创建HttpServlet文件

用过Servlet写过项目的朋友都知道,声明一个Servlet不仅要有@WebServlet注解,还要继承HttpServlet这个类。

public abstract class HttpServlet {//实现doGet方法public abstract void doGet(HttpRequest request, HttpResponse response);//实现doPOST方法public abstract void doPost(HttpRequest request, HttpResponse response);//实现service方法进行判断public void service(HttpRequest request, HttpResponse response){if ("GET".equals(request.getMethod())){doGet(request,response);}else if("POST".equals(request.getMethod())){doPost(request,response);}}
}

3、加载项目中的所有以.java结尾的文件

public class FileChooseConfig {//存的是该项目文件夹中所有.java结尾文件的全限定名public static List<String> arr= new ArrayList<>();public static void getFilePath(File file) {File[] fs = file.listFiles();for (File f : fs) {if (f.isDirectory()){getFilePath(f);}if (f.isFile()) {String filepath = f.toString();filepath = filepath.split("main")[1];filepath = filepath.substring(6,filepath.length());if( filepath.endsWith(".java")) {//把是.java文件的全类名放到arr中arr.add(filepath.replace("\\", ".").replace(".java", ""));}}}}
}

4、收集项目中带有@MyWebServlet 的类对象

public class FileChooseConfig {//key为urlMapping路径,value为通过全类名反射得到的servlet类对象public static Map<String,Class> webServletMap = new ConcurrentHashMap<>();//查找所有controller,并创建对象装入Map里(“url”:Object)public static void chooseWebServlet() {for(String file: arr){try {Class<?> aClass = Class.forName(file);//如果有WebServlet注解if(aClass.isAnnotationPresent(MyWebServlet.class)) {MyWebServlet webServlet = getUrlMapping(aClass);//如果之前已经有了一样的  不同controller的requestmapping的值,说明有冲突。if (webServletMap.containsKey(webServlet.urlMapping())) {throw new RuntimeException("类多注解值:" + webServlet.urlMapping());} else {//如果之前没有添加过相同urlMapping的servlet,则向servletMap中添加key:urlMapping;value:servlet类对象webServletMap.put(webServlet.urlMapping(),  aClass);}}}catch (ClassNotFoundException e) {e.printStackTrace();}}}public static MyWebServlet getUrlMapping(Class cl){Annotation annotation = cl.getAnnotation(MyWebServlet.class);if(annotation instanceof  MyWebServlet){return  (MyWebServlet) annotation;}return null;}}
http://www.ds6.com.cn/news/94716.html

相关文章:

  • 农村建设网站的重要性产品网络营销策划方案
  • 合法的三级分销图app优化网站
  • 如何防范钓鱼网站百度快照的作用是什么
  • 做批发网站有哪些电商网页
  • 手机网站建站教育模板下载深圳百度seo怎么做
  • 织梦网站如何做seo北京快速优化排名
  • 银行营销案例100例宁波网站建设优化企业
  • 在线设计平台行业概况seo是哪个英文的缩写
  • 为什么要选择高端网站定制百度搜索关键词排名优化技术
  • 免费做文字图网站域名注册 万网
  • 域名注册网站建设seo的全称是什么
  • 长沙建设网站企业网络推广关键词优化公司
  • 网站转化站长工具 seo综合查询
  • 企业网站管理系统网页推广怎么做
  • 马来西亚做网站最有效的网络推广方式
  • 西青网站文化建设龙岗网站设计
  • 云南网站建设企业推荐seo查询 工具
  • 建设博物馆网站2023年6月疫情恢复
  • 长春网络建站制作网页的工具软件
  • 贵阳网站建设王道下拉惠廊坊关键词快速排名
  • 公司建设网站需要什么惠州搜索引擎seo
  • 卫浴响应式外贸网站建设semir是什么牌子
  • 佛山专业网站建设报价建站平台
  • 个人主页设计html代码seo云优化
  • 软考中级哪个含金量高西安网站关键词优化费用
  • 开发公司 网站建设价格百度员工收入工资表
  • 美国免费的网页空间网站的优化策略方案
  • 幼儿园网站怎么做企业网络营销推广平台
  • 做app网站的软件有哪些seo搜索引擎优化求职简历
  • 珠海企业网站建设费用做seo需要哪些知识