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

如何做网站的滚动图片焦作整站优化

如何做网站的滚动图片,焦作整站优化,如东网站建设,开个小网站要怎么做的目录结构: 两个注解类: Controller: package com.heaboy.annotation;import java.lang.annotation.*;/*** 注解没有功能只是简单标记* .RUNTIME 运行时还能看到* .CLASS 类里面还有,构建对象久没来了,这个说明…

目录结构:

 两个注解类:

@Controller:

package com.heaboy.annotation;import java.lang.annotation.*;/*** 注解没有功能只是简单标记*  .RUNTIME    运行时还能看到*  .CLASS  类里面还有,构建对象久没来了,这个说明是给类加载器的*  .SOURCE  表示这个注解能存活到哪一阶段(源码阶段)仅在   .java阶段有用 也就是仅在编译阶段有 *   用 *   是让编译器去看的*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Controller {
}

@RequestMapping:

package com.heaboy.annotation;import java.lang.annotation.*;@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})//既在类上有用 在方法上也能用
public @interface RequestMapping {/*** 表明使用这个注解需要传入一个值,可以通过value()的形式传入, dafault是设置默认值 表明既可以传值* 也可以不传,使用设置的默认值null* @return*/String value() default "";}

两个Controller类:

TestController:

package com.heaboy.Controller;import com.heaboy.annotation.Controller;
import com.heaboy.annotation.RequestMapping;@Controller
@RequestMapping("test")
public class TestController {@RequestMappingpublic String index(){System.out.println("test->index");return "";}@RequestMapping("index1")public String index1(){System.out.println("test->index1");return "";}@RequestMapping("index2")public String index2(){System.out.println("test->index2");return "";}
//    @RequestMapping("index1")
//    public String index3(){
//        System.out.println("test->index3");
//        return "";
//    }}

IndexController类:

package com.heaboy;import com.heaboy.annotation.Controller;
import com.heaboy.annotation.RequestMapping;@Controller
@RequestMapping
public class IndexController {@RequestMappingpublic void index(){System.out.println("index->index");}@RequestMapping("index1")public String index1(){System.out.println("test->index111111");return "";}
}

最重要的模拟mvc功能类:HeaboyMvc

package com.heaboy.mvc;import com.heaboy.annotation.Controller;
import com.heaboy.annotation.RequestMapping;import java.io.File;
import java.lang.annotation.Annotation;
import java.lang.ref.ReferenceQueue;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import java.util.regex.Matcher;/*** @author heaboy* mvc类*/
public class HeaboyMvc {private static HashMap<String, Map<String, Method>> map = new HashMap<>();// 创建一个静态的哈希映射,用于存储类路径和方法路径对应的Method对象private static HashMap<String, Object> objMap = new HashMap<>();// 创建一个静态的哈希映射,用于存储类路径和对应的实例对象public static void exec(String classPath, String methodPath) {// 定义一个公开的静态方法,用于执行指定类路径和方法路径的方法if (objMap.get(classPath) == null) {// 如果objMap中没有对应的类实例,则输出错误信息System.out.println("没有这个类 404");} else {// 如果有对应的类实例if (map.get(classPath).get(methodPath) == null) {// 如果map中没有对应的方法,则输出错误信息System.out.println("没有这个方法 404");} else {// 如果有对应的方法try {// 尝试调用该方法map.get(classPath).get(methodPath).invoke(objMap.get(classPath));} catch (IllegalAccessException e) {// 捕获调用方法时可能出现的异常,并打印堆栈跟踪信息e.printStackTrace();} catch (InvocationTargetException e) {// 捕获调用方法时可能出现的异常,并打印堆栈跟踪信息e.printStackTrace();}}}}public static void scanner(String path, String packageName) {// 定义一个公开的静态方法,用于扫描指定路径下的类文件,并处理注解List<String> paths = traverseFolder2(path);// 获取指定路径下所有的类文件路径for (String p : paths) {p = p.substring(path.length() - 1);// 从路径中截取类文件的相对部分try {String className = packageName + "." + p.replaceAll(Matcher.quoteReplacement(File.separator), ".");// 构造类的完整名称,包括包名和类名String replace = className.replace(".class", "");// 移除类名称后面的“.class”后缀Class<?> cl = ClassLoader.getSystemClassLoader().loadClass(replace);// 加载类文件到内存if (isController(cl)) {// 检查当前类是否为控制器if (isRequestMapping(cl)) {// 检查当前类是否包含RequestMapping注解RequestMapping requestMapping = getRequestMapping(cl);// 获取类的RequestMapping注解对象if (map.containsKey(requestMapping.value())) {// 如果map中已经包含了该注解值throw new RuntimeException("类多注解值:" + requestMapping.value());// 抛出运行时异常,表示类有多个注解值} else {// 如果没有包含该注解值map.put(requestMapping.value(), new HashMap<>());// 在map中添加一个新的映射项,key为注解值,value为一个新的HashMapobjMap.put(requestMapping.value(), cl.newInstance());// 创建该类的实例,并存储在objMap中}Method[] declaredMethods = cl.getDeclaredMethods();// 获取类中声明的所有方法for (Method declaredMethod : declaredMethods) {// 遍历每个方法if (isRequestMapping(declaredMethod)) {// 如果方法包含RequestMapping注解RequestMapping mapping = getRequestMapping(declaredMethod);// 获取方法的RequestMapping注解对象if (map.get(requestMapping.value()).containsKey(mapping.value())) {// 如果map中已经包含了该方法注解值throw new RuntimeException("方法多注解值:" + requestMapping.value());// 抛出运行时异常,表示方法有多个注解值} else {// 如果没有包含该方法注解值map.get(requestMapping.value()).put(mapping.value(), declaredMethod);// 将方法存储在map中}}}} else {// 如果类不包含RequestMapping注解throw new RuntimeException("类无requestMapping");// 抛出运行时异常,表示类无RequestMapping注解}}} catch (ClassNotFoundException e) {e.printStackTrace();// 捕获类未找到异常,并打印堆栈跟踪信息} catch (IllegalAccessException e) {e.printStackTrace();// 捕获非法访问异常,并打印堆栈跟踪信息} catch (InstantiationException e) {e.printStackTrace();// 捕获实例化异常,并打印堆栈跟踪信息}}}private static boolean isController(Class cl) {// 定义一个私有的静态方法,用于检查类是否为控制器Annotation annotation = cl.getAnnotation(Controller.class);// 获取类的Controller注解对象if (annotation != null) {// 如果注解对象不为nullreturn true;// 返回true,表示类为控制器}return false;// 返回false,表示类不是控制器}private static boolean isRequestMapping(Class cl) {// 定义一个私有的静态方法,用于检查类是否包含RequestMapping注解Annotation annotation = cl.getAnnotation(RequestMapping.class);// 获取类的RequestMapping注解对象if (annotation != null) {// 如果注解对象不为nullreturn true;// 返回true,表示类包含RequestMapping注解}return false;// 返回false,表示类不包含RequestMapping注解}private static boolean isRequestMapping(Method method) {// 定义一个私有的静态方法,用于检查方法是否包含RequestMapping注解Annotation annotation = method.getAnnotation(RequestMapping.class);// 获取方法的RequestMapping注解对象if (annotation != null) {// 如果注解对象不为nullreturn true;// 返回true,表示方法包含RequestMapping注解}return false;// 返回false,表示方法不包含RequestMapping注解}private static RequestMapping getRequestMapping(Class cl) {// 定义一个私有的静态方法,用于获取类的RequestMapping注解对象Annotation annotation = cl.getAnnotation(RequestMapping.class);// 获取类的RequestMapping注解对象if (annotation instanceof RequestMapping) {// 如果注解对象是RequestMapping类型return (RequestMapping) annotation;// 将注解对象强制转换为RequestMapping类型并返回}return null;// 返回null,表示类不包含RequestMapping注解}private static RequestMapping getRequestMapping(Method method) {// 定义一个私有的静态方法,用于获取方法的RequestMapping注解对象Annotation annotation = method.getAnnotation(RequestMapping.class);// 获取方法的RequestMapping注解对象if (annotation instanceof RequestMapping) {// 如果注解对象是RequestMapping类型return (RequestMapping) annotation;// 将注解对象强制转换为RequestMapping类型并返回}return null;// 返回null,表示方法不包含RequestMapping注解}private static List<String> traverseFolder2(String path) {// 定义一个私有的静态方法,用于遍历文件夹,获取所有类文件的路径File file = new File(path);// 创建文件对象List<String> classFiles = new ArrayList<>();// 创建一个列表,用于存储类文件路径if (file.exists()) {// 如果文件夹存在LinkedList<File> list = new LinkedList<File>();// 创建一个链表,用于存储子文件夹File[] files = file.listFiles();// 获取文件夹中的所有文件和子文件夹for (File file2 : files) {// 遍历每个文件和子文件夹if (file2.isDirectory()) {// 如果是子文件夹list.add(file2);// 将子文件夹添加到链表中} else {// 如果是文件classFiles.add(file2.getAbsolutePath());// 将文件的绝对路径添加到类文件路径列表中}}File temp_file;while (!list.isEmpty()) {// 当链表不为空时temp_file = list.removeFirst();// 移除链表中的第一个文件夹files = temp_file.listFiles();// 获取文件夹中的所有文件和子文件夹for (File file2 : files) {// 遍历每个文件和子文件夹if (file2.isDirectory()) {// 如果是子文件夹list.add(file2);// 将子文件夹添加到链表中} else {// 如果是文件classFiles.add(file2.getAbsolutePath());// 将文件的绝对路径添加到类文件路径列表中}}}} else {// 如果文件夹不存在System.out.println("路径不存在");}return classFiles;// 返回类文件路径列表}// 结束 traverseFolder2 方法
}

测试类:Main

package com.heaboy;import com.heaboy.mvc.HeaboyMvc;public class Main {static {String path = Main.class.getResource("").getPath();String packageName = Main.class.getPackage().getName();HeaboyMvc.scanner(path,packageName);}public static void main(String[] args) {HeaboyMvc.exec("","");HeaboyMvc.exec("test","index1");HeaboyMvc.exec("test","index2");HeaboyMvc.exec("test","");HeaboyMvc.exec("test","dadasdadad");HeaboyMvc.exec("","index1");}
}

http://www.hkea.cn/news/660144/

相关文章:

  • 建设网站技术方案线上教育培训机构十大排名
  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略
  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情
  • 电子商务网站设计中影响客户体验的元素有搜索引擎有哪些种类
  • 网站建设难点优化关键词技巧
  • 免费行情网站链接百度知道合伙人官网
  • 餐饮公司网站建设的特点大数据智能营销
  • 济南快速排名刷关键词排名seo软件
  • 系统做网站的地方百度推广登录后台登录入口
  • 集约化网站建设情况广告公司网站制作
  • 网站制作发票字节跳动广告代理商加盟
  • 义乌做网站武汉seo推广优化公司
  • 济宁哪家网站建设公司正规谷歌浏览器 免费下载