spring MVC框架
spring MVC框架
一、 框架图
二、 代码
1. web.xml
<!-- 配置Spring MVC DispatcherServlet --> <servlet> <servlet-name>mengka</servlet-name> <servlet-class>com.mengka.common.DispatcherController</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置DispatcherServlet所需要拦截的 url --> <servlet-mapping> <servlet-name>mengka</servlet-name> <url-pattern>/mengka/*</url-pattern> </servlet-mapping>
/** * User: mengka * Date: 15-3-22-下午4:02 */ public class DispatcherController extends DispatcherServlet { private static final Logger log = LoggerFactory.getLogger(DispatcherController.class); @Override protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { String path = request.getRequestURI(); log.info("------------, path = "+path); super.doDispatch(request, response); return; } }
2. mengka-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> </bean> </beans>
3. 设置拦截器
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <context:component-scan base-package="com.mengka.app.*"/> <mvc:annotation-driven/> <!-- 拦截器 --> <mvc:interceptors> <bean class="com.mengka.interceptor.AllInterceptor"/> <mvc:interceptor> <mvc:mapping path="/qingcai/*" /> <bean class="com.mengka.interceptor.TbbInterceptor"/> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/baicai/**"/> <!--<mvc:mapping path="/mengka/baicai/list"/>--> <!--<mvc:mapping path="/qingcai/**"/>--> <!--<mvc:mapping path="/**" />--> <bean id="souxianInterceptor" class="com.mengka.interceptor.TaaInterceptor"/> </mvc:interceptor> </mvc:interceptors> </beans>
public class AllInterceptor implements WebRequestInterceptor { private static final Logger log = LoggerFactory.getLogger(AllInterceptor.class); @Override public void preHandle(WebRequest request) throws Exception { String url = request.getContextPath(); log.info("---------------, AllInterceptor preHandle path = "+url); request.setAttribute("request", "request", WebRequest.SCOPE_REQUEST);//这个是放到request范围内的,所以只能在当前请求中的request中获取到 request.setAttribute("session", "session", WebRequest.SCOPE_SESSION); } @Override public void postHandle(WebRequest request, ModelMap model) throws Exception { } @Override public void afterCompletion(WebRequest request, Exception ex) throws Exception { } }
public class TaaInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(TaaInterceptor.class); /** * Controller 方法调用之前执行 * * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String url = request.getRequestURI(); log.info("---------------, TaaInterceptor preHandle path = "+url); String cookie = "11111111111111"; request.setAttribute("souxianji", cookie); return true; } /** * Controller 方法调用之后执行: * 1.在这个方法中你可以对ModelAndView进行操作 * * @param request * @param response * @param handler * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { log.info("---------------, TaaInterceptor postHandle。。。"); } /** * 该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。这个方法的主要作用是用于进行资源清理工作的 * * @param request * @param response * @param handler * @param ex * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { log.info("---------------, TaaInterceptor afterCompletion。。。"); } }
4. MengkaController控制层
/** * http://127.0.0.1:8080/mengka/get * * User: mengka * Date: 2015/3/20 */ @Controller public class MengkaController { @RequestMapping(value = "/add/", method = RequestMethod.POST) public ModelAndView addPushMsg(HttpServletRequest request, HttpServletResponse response) { Map<String, String> paraMap = new HashMap<String, String>(); paraMap.put("para", "test aaa..."); return new ModelAndView("mengka/pushSuccess", paraMap); } @RequestMapping(value = "/get", method = RequestMethod.GET) public ModelAndView mengkaGet(HttpServletRequest request, HttpServletResponse response) { Map<String, String> paraMap = new HashMap<String, String>(); paraMap.put("para", "test aaa..."); return new ModelAndView("mengka/pushSuccess", paraMap); } }
5. 视图层"WEB-INF/pages/mengka/pushSuccess.jsp"
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>test</title> </head> <body> ${para} </body> </html>
相关推荐
与卿画眉共浮生 2020-11-13
smalllove 2020-11-03
hellowordmonkey 2020-11-02
丽丽 2020-10-30
周太郎 2020-10-28
greensomnuss 2020-10-27
职业炮灰 2020-10-16
与卿画眉共浮生 2020-10-14
feinifi 2020-10-14
feinifi 2020-10-13
yangjinpingc 2020-10-09
davis 2020-09-29
RickyIT 2020-09-27
lisongchuang 2020-09-27
tangxiong0 2020-09-03
meleto 2020-08-17
幸运小侯子 2020-08-14
YangHuiLiang 2020-08-06