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