spring servlet
来源:互联网 发布:自学php需要什么基础 编辑:程序博客网 时间:2024/04/20 22:50
DispatcherServlet实际上是一个Servlet(它从HttpServlet继承而来)。和其它Servlet一样,DispatcherServlet定义在web应用的web.xml文件里。DispatcherServlet处理的请求必须在同一个web.xml文件里使用url-mapping定义映射。下面的例子演示了如何配置DispatcherServlet。
<web-app>
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
</web-app>
在上面的例子里,所有以.form结尾的请求都会由名为example的DispatcherServlet处理。这只是配置Spring Web MVC的第一步。接下来需要配置DispatcherServlet本身和Spring Web MVC 框架用到的其他的bean。
正如在第 3.8 节 “ApplicationContext”中所描述的,Spring中的ApplicationContext可以被限制在不同的作用域(scope)中。在web MVC框架中,每个DispatcherServlet有它自己的WebApplicationContext,这个context继承了根 WebApplicationContext的所有bean定义。这些继承的bean也可以在每个serlvet自己的所属的域中被覆盖(override),覆盖后的bean可以被设置成只有这个servlet实例自己才可以使用的属性。
Spring Web MVC中的Context体系
在DispatcherServlet的初始化过程中,Spring会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml的配置文件,生成文件中定义的bean。这些bean会覆盖在全局范围(global cope)中定义的同名的bean。
下面这个例子展示了在web.xml中DispatcherServlet的配置:
<web-app>
...
<servlet>
<servlet-name>golfing</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>golfing</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
要进行如上的servlet配置,你还需要配置/WEB-INF/golfing-servlet.xml这样一个文件。golfing-servlet.xml这个文件应该声明你在Spring Web MVC 框架中需要的bean。 这个文件的路径也可以通过web.xml中servlet的初始化参数来更改。(详情见下面的例子。)
具体配置如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- spring的ParameterMethodNameResolver的可以根据不同的参数执行不同方法,类似Struts的dyncaction,输入test.do?method=list 执行list方法 -->
<bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="method" />
</bean>
<bean name="/test.do" class="com.ibm.crl.broker.web.controller.TestController">
<property name="testView" value="test/view" />
<property name="methodNameResolver" ref="paramMethodResolver" />
</bean>
</beans>
类继承MultiActionController
public class TestController extends MultiActionController {
private String testView;
public void setTestView(String testView) {
this.testView= testView;
}
public ModelAndView list(HttpServletRequest req, HttpServletResponse resp) throws Exception {
ModelAndView mv = new ModelAndView();
mv.setViewName(testView);
List list = new ArrayList();
mv.addObject("list", list);
return mv;
}
}
WebApplicationContext仅仅是一个拥有web应用必要功能的普通ApplicationContext。它与一个标准的ApplicationContext的不同之处在于,它能够解析theme(参考第 13.7 节 “使用主题”),并且它知道自己与哪个servlet相关联(通过ServletContext)。WebApplicationContext被绑定在ServletContext上,当你需要的时候,可以使用RequestContextUtils提供的静态方法找到WebApplicationContext。
Spring的DispatcherServlet有一组特殊的bean,用来处理请求和渲染相应的视图。这些bean包含在Spring的框架里,可以在WebApplicationContext中配置,配置方式与配置其它bean相同。这些bean中的每一个都在下文作详细描述。此刻读者只需知道它们的存在,便继续对DispatcherServlet进行讨论。对大多数bean,Spring都提供了合理的缺省值,所以在开始阶段,你不必担心如何对其进行配置。
- servlet spring
- spring servlet
- Spring+Servlet
- spring 怎么连接servlet,spring整合servlet,spring管理servlet
- servlet中取到Spring配置
- servlet掉用spring bean
- spring整合servlet
- Spring管理Servlet
- Servlet获取Spring bean
- Spring配置Servlet
- spring管理servlet
- Spring整合Servlet
- spring+servlet 简单演示
- servlet注入spring管理
- servlet spring bean注入
- spring和servlet
- servlet中使用spring
- Servlet,spring,hibernate
- AX barcode
- 一些好笑的话
- Killer's sentence too light!
- 欢迎光临!
- 防止android应用的内存泄露
- spring servlet
- Spring 2.5 采用动态代理或cglib来实现aop
- 多层数据库应用基于Delphi DataSnap方法调用的实现(三)对象池技术
- 通用的自动提交From表单
- pyqt 在QTreeView里使用复选框checkbox
- Ubuntu 10.04(64位)下载并编译 Android 2.2 源码[只有11条命令]
- grub4dos 从硬盘引导安装 ubuntu
- 报告一个小小bug
- POJ 1724 ROADS