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

自助建站最好的平台响应式学校网站模板下载

自助建站最好的平台,响应式学校网站模板下载,wordpress前台加速,如何架设php网站文章目录 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.yayakq.cn/news/869525/

相关文章:

  • 知名做网站费用《民用建筑通用规范》
  • 深圳有多少网站建设公司经营地址怎么在国税网站做更改
  • 西安建设局网站地址网站建设制作服务
  • 银川迅雷网站建设制作华为手机网站建设规划书
  • 苏州网站制作方法天津外贸seo推广
  • 外贸网站如何做推广多少钱网站建设与管理找工作
  • 建网站什么样的域名最好温州seo优化网络推广
  • 网站开发模板教务管理wordpress自定义字段位置
  • 视频短链接生成器优化大师如何删掉多余的学生
  • 怎么用wordpress搭建网站做展馆好的设计网站
  • 建设网站需要多少钱济南兴田德润厉害吗七台河建网站
  • 做产品宣传网站多少钱做高清视频的网站
  • 东莞企业网站建设费用外贸工艺品网站建设
  • 教务在线网站开发报告书新手建什么网站赚钱
  • 网站建设初衷seo托管公司
  • 郑州做网站服务器网络营销方案
  • 网站建设合同标的怎么写培训行业网站建设
  • 珠海移动网站建设报价asp网站跳转浏览器
  • 网站建设方案标准模板肥乡网站建设
  • 专业网站构建网站的模版要怎么重新做
  • 网站开发项目总结报告徐州网站建设多少钱
  • 小程序网站建设的公司网站开发技术及开发环境
  • 本机iis网站大棚建设的网站
  • 如何建网站平台卖东西下载四川天府健康二维码
  • 天津做网站seo的求职简历在哪个网站做
  • 网络营销网站建设的角度芯片商城网站建设
  • 免费海外网站cdn加速海外推广平台有哪些?
  • 东莞个人网站设计律师关键词推广
  • 做国珍新时代 网站佛山最新通知今天
  • 搭建企业网站公司网络推广的作用