第一种方式
1、配置中央控制器以及过滤器
在web.xml下配置
<!--配置过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--配置中央控制器-->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2、在spring的核心配置文件配置处理器映射器、处理器适配器、视图解析器以及action
<!--配置处理器映射器-->
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!--配置处理器适配器-->
<bean id="adapter" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!--配置视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
<!--配置action-->
<bean id="/home.do" class="com.controller.HelloAction"/>
3、创建action类并实现Controller接口
public class HelloAction implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("name","x'x");
modelAndView.setViewName("/helloWorld.jsp");
return modelAndView;
}
}
第二种方式
1、第一步参考上面第一步
2、在spring的核心配置文件配置处理器映射器、处理器适配器、视图解析器以及action
<!--配置action-->
<bean id="test" class="com.controller.Test2"/>
<!--配置处理器映射器-->
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="home.do">test</prop> //key对应url,值对应id名
</props>
</property>
</bean>
<!--配置处理器适配器-->
<bean id="adapter" class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
<!--配置视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
3、编写处理类
public class Test2 implements HttpRequestHandler {
@Override
public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
httpServletRequest.setAttribute("name","小明");
httpServletRequest.getRequestDispatcher("/helloWorld.jsp").forward(httpServletRequest,httpServletResponse);
}
}
第二种方式
1、参照第一张方式第一部
2、配置spring核心配置文件
<!--开启扫描包的注解-->
<context:component-scan base-package="com.controller"/>
<!--添加映射的处理器映射器,以及处理器适配器-->
<!--<bean id="mapper" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean id="adapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>-->
<!--到mvc约束,直接用注解-->
<mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
3、自定义编写action
@Controller
@RequestMapping(value = "/items")
public class ItemsAction {
@RequestMapping(value = "/add.do")
public ModelAndView addItems(){
ModelAndView mav = new ModelAndView();
mav.addObject("result","添加成功");
mav.setViewName("/WEB-INF/addResult.jsp");
return mav;
}
}