zoukankan      html  css  js  c++  java
  • Servlet简单实现请求分发(类thinkphp5)

    Servlet简单实现请求分发(类thinkphp5)

    1.写请求分发的原由

      今天晚上笔者在使用java的servlet写博客网站的时候,想实现MVC开发模式,然后就发现,一个请求的动作就要写servlet实现类,这也太麻烦了吧,于是就在想,可不可以一个contorller控制器中实现多个请求,像thinkphp5中的路由方式(因为笔者之前是搞php开发的,对tp5的这种路由写法比较有感觉/模块名/控制器名/方法名),于是简单不成熟的类thinkphp5的路由分发就出来了。

    2.使用

       ①配置文件:

        每一个控制器的命名规则 首字母大写 与之相对应的web.xml文件中的url-pattern   书写规则/模块名/控制器名/*        其中java文件中的控制器的名要与配置文件的一样(首字母控制器是大写,配置文件是小写)

        例如:

          Login类 他所对应的配置文件就是/admin/login/*

              

      再就是配置一个key-value  参数 规则是:    模块名:控制器所在的全包名      其中一个模块中控制器全放在一个包中   (以便于反射使用方便)

       

    ②类的书写

        要继承Controller类   

        路由中的方法名随意  但是参数必须要是HttpServletRequest request, HttpServletResponse response   返回值String类型   ,转发 return view();   重定向return redirect();   其他就是return null;

                

    ③view方法介绍(用于转发)

        无参:会自动寻找view/模块名/控制器名/文件夹下的  方法名.jsp

        有参:自定义要转发的全路径文件

    ④redirect方法介绍:(用于重定向)

        参数String类型:  要重定向的路由

     3.路由使用  

      http://localhost/MyTest/admin/register/delete

      模块名/控制器名/方法名

    最后附上源码:

    欢迎大佬指正(笔者小白):github

  • 相关阅读:
    快乐的一天从AC开始 | 20210717 | 牛客小白月赛36J
    快乐的一天从AC开始 | 20210717 | P4839
    P7295-[USACO21JAN]Paint by Letters P【平面图欧拉公式】
    泛型
    List集合
    红黑树被定义
    单例模式的双重检查锁模式为什么必须加 volatile?
    什么是 happens-before 规则?
    解决AtomicInteger 在高并发下性能问题
    什么是指令重排序?为什么要重排序?
  • 原文地址:https://www.cnblogs.com/xuzhaocai/p/8326213.html
Copyright © 2011-2022 走看看