介绍
实现Handler通常有下面几种方式:
1.实现Controller接口。重写handleRequest()方法
2.继承AbstractController抽象类。特殊功能:该抽象类能够限制哪儿些请求方式(POST,GET)能够访问该Handler。
2.实现HttpRequestHandler接口。重写handleRequest()方法
3.继承MultiActionController。可以在一个类里面写多个方法。
- 方法要求,必须有两个参数。第一个为:HttpServletRequest,第二个为:HttpServletResponse,注意:有顺序要求!!!
- 方法名不能为handleRequest。
- 对返回值没有要求。你可以返回ModelAndView类型,也可以是void。
- 访问url为:根据方法名进行访问!!!
实践
开发Handler:
public class ItemMultiContorller extends MultiActionController{
/*
* 这里面的请求方法书写规范:
* 1.只有两个参数,第一个为HttpServletRequest,第二个为HttpServletResponse。有顺序要求!!!
* 2.返回值没有要求,可以为空,也可以返回ModelAndView。
* 3.方法名不能为handleRequest
* 4.请求url根据方法名请求!!!
*/
public void showTime(HttpServletRequest request,HttpServletResponse response){
System.out.println(new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(new Date()));
}
public ModelAndView helloWorld(HttpServletRequest request,HttpServletResponse response){
System.out.println("Hello 程序世界!!");
return null;
}
}
通过Spring管理该Handler对象:
<bean id="itemMultiController0x" class="cn.domarvel.controller.ItemMultiContorller"></bean>
配置请求url:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="showTime.action">itemMultiController0x</prop>
<prop key="helloWorld.action">itemMultiController0x</prop>
</props>
</property>
</bean>
本项目名称为:SpringMVC
所以访问地址为:
http://localhost:8080/SpringMVC/helloWorld.action
http://localhost:8080/SpringMVC/showTime.action
方法注册时,判断方式源代码查看:
但遗憾的是,该方法已经过时了,官方建议用注解开发这种多个URL请求Handler里面不同的方法。