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

上海博道投资管理公司的网站谁做的天眼

上海博道投资管理公司的网站谁做的,天眼,网站模板 酒类,沈阳seo搜索排名优化tomcat仿写 项目结构扫描文件servlet注解map容器servlet工具类启动类调用 项目结构 扫描文件之前当然要确定一下项目结构了#xff0c;我这里的方案是tomcat和项目同级 项目的话就仿照我们平时使用的结构就好了#xff0c;我们规定所有的静态资源文件都在webApp目录下存放… tomcat仿写 项目结构扫描文件servlet注解map容器servlet工具类启动类调用 项目结构 扫描文件之前当然要确定一下项目结构了我这里的方案是tomcat和项目同级 项目的话就仿照我们平时使用的结构就好了我们规定所有的静态资源文件都在webApp目录下存放。 扫描文件 这部分工作我们在仿写spring中已经做过了我就直接沿用之前的方案了与之前不同的是我们添加了定位webApp的方法并且存储在这个工具类里面了代码如下 package com.tomcatServer.utils;import java.io.File; import java.util.ArrayList; import java.util.List;/*** 扫描工具类** author tomcatProject.ez4sterben* date 2023/08/15*/ public class ScanUtil {public static ListString javaFiles new ArrayList();public static String JAVA .java;public static String WEB_APP_PATH;public static String PROJECT_PATH;/*** 得到所有java文件** param path 路径* return {link List}{link String}*/public static ListString getAllJavaFile(String path){getAllFile(new File(path));return javaFiles;}/*** 让web应用程序路径** param root 根* return {link String}*/public static String getWebAppPath(String root){File directory new File(root);if (directory.exists() directory.isDirectory()) {findWebAppFolder(directory, webApp);} else {System.out.println(Directory does not exist or is not a directory.);}return PROJECT_PATH;}/*** 找到web应用程序文件夹** param directory 目录* param targetFolderName 目标文件夹名称*/private static void findWebAppFolder(File directory, String targetFolderName) {File[] files directory.listFiles();if (files ! null) {for (File file : files) {if (file.isDirectory() file.getName().equals(targetFolderName)) {PROJECT_PATH file.getParentFile().getAbsolutePath();WEB_APP_PATH PROJECT_PATH \\webApp;} else if (file.isDirectory()) {findWebAppFolder(file, targetFolderName);}}}}/*** 获取所有文件** param file 文件*/public static void getAllFile(File file){if (file.isFile()){if (file.toString().endsWith(JAVA)) {String javaPath getJavaPath(file);javaFiles.add(javaPath);}}if (file.exists() file.isDirectory()) {File[] files file.listFiles();if (files ! null) {for (File file1 : files) {getAllFile(file1);}}}}/*** 获取java路径** param file 文件* return {link String}*/private static String getJavaPath(File file) {return file.toString().replace(\\,.).split(src.main.java.)[1].replace(.java,);}} servlet注解 注解这里没什么好说的自定义一个就行了 package com.tomcatServer.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** web servlet** author tomcatProject.ez4sterben* date 2023/08/15*/ Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) public interface WebServlet {String value() default ; } map容器 map容器就是存储servlet实例的地方 package com.tomcatServer.servlet;import java.util.HashMap; import java.util.Map;/*** map存储** author tomcatProject.ez4sterben* date 2023/08/15*/ public class MapStore {public static MapString,Class? servletMap new HashMap(); } servlet工具类 目前工具类主要是两个方法一个是判断java类是否有webservlet注解另一个是初始化map容器的将是servlet的类都丢进去代码逻辑应该很好懂不需要多说什么。 package com.tomcatServer.utils;import com.tomcatServer.annotation.WebServlet; import com.tomcatServer.servlet.MapStore;import java.lang.reflect.InvocationTargetException;/*** servlet工具类** author tomcatProject.ez4sterben* date 2023/08/15*/ public class ServletUtil {/*** 是web servlet** param className 类名* return {link Boolean}*/public static Boolean isWebServlet(String className){try {Class? aClass Class.forName(className);WebServlet annotation aClass.getAnnotation(WebServlet.class);if (annotation null){return Boolean.FALSE;}} catch (ClassNotFoundException e) {throw new RuntimeException(e);}return Boolean.TRUE;}/*** 初始化servlet** param className 类名*/public static void initServlet(String className){try {Class? aClass Class.forName(className);String url aClass.getAnnotation(WebServlet.class).value();if (url.startsWith(/)) {MapStore.servletMap.put(url,aClass);}else {MapStore.servletMap.put(/ url,aClass);}} catch (ClassNotFoundException e) {throw new RuntimeException(e);}} } 启动类调用 package com.tomcatServer;import com.tomcatServer.utils.MapUtil; import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.util.List;import static com.tomcatServer.utils.ScanUtil.getWebAppPath;/*** tomcat server启动类** author tomcatProject.ez4sterben* date 2023/08/15*/ public class Main {public static String ROOT;public static void main(String[] args) throws IOException {// 1.初始化根目录ROOT System.getProperty(user.dir);// 2.获取webApp的位置String webAppPath getWebAppPath(ROOT);// 3.获取所有带有WebServlet注解的java文件初始化servletListString allJavaFile ScanUtil.getAllJavaFile(webAppPath);for (String s : allJavaFile) {if (MapUtil.isWebServlet(s)) {ServletUtil.initServlet(s);}}// 4.处理http请求} } 到这里基本工作就做完了下一篇将会带大家完成对http请求的处理 【仿写tomcat】三、通过socket读取http请求信息
http://www.w-s-a.com/news/616586/

相关文章:

  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率
  • 最简单的网站系统昨天军事新闻最新消息
  • 做ps网页设计的网站有哪些wordpress内容付费
  • 有没有免费注册域名的网站科技小制作 手工 简单
  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要
  • ftp 网站管理电商网站设计图片
  • 惠州免费建站模板营销型旅游网站建设
  • 南宁cms建站wordpress 开启缩略图
  • 网站模板软件网站admin密码