乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      [Java教程]spring mvc 實(shí)現(xiàn)網(wǎng)站登錄與非登錄的控制

       feimishiwo 2014-05-20

      [Java教程]spring mvc 實(shí)現(xiàn)網(wǎng)站登錄與非登錄的控制

      1

      在我們的網(wǎng)站平臺(tái)上,主要有兩類頁(yè)面,一類是非登錄也能查看的頁(yè)面,另一類是登錄后才能查看的頁(yè)面

      通過使用 spring攔截器來實(shí)現(xiàn),當(dāng)用戶沒有登錄時(shí)訪問需要登錄的頁(yè)面時(shí)自動(dòng)實(shí)現(xiàn)跳轉(zhuǎn)至登錄頁(yè)

      1、添加接口用于攔截器與控制器交互數(shù)據(jù)(包括上下文與登錄賬號(hào)信息)

      View Code IWebContext/**
       * 用于實(shí)現(xiàn)上下文連接 用于在過濾器中實(shí)現(xiàn)注入Request與Response
       * @author Administrator
       *
       */
      public interface IWebContext {
          /**
           * 設(shè)置請(qǐng)求與應(yīng)答上下文
           * @param request 請(qǐng)求
           * @param response 應(yīng)答
           * @param userType 用戶類型
           * @param loginUrl 登錄頁(yè)面的URL
           */
          public void setWebContext(HttpServletRequest request, HttpServletResponse response, UserTypeEnum userType, String loginUrl);
          /**
           * 獲取登錄賬號(hào)
           * @return 返回當(dāng)前的登錄賬號(hào),如果沒有登錄則返回空
           */
          public LoginAccount getLoginAccount();
      }

      2、所有的Controller都繼承自BaseController

      View Code BaseController@Controller
      public class BaseController implements IWebContext {
          private static final Logger log = Logger.getLogger(BaseController.class);
          /*********************獲取Request與Response*******************/
          /**
           * 請(qǐng)求上下文
           */
          private HttpServletRequest request;
          /**
           * 應(yīng)答上下文
           */
          private HttpServletResponse response;
          /**
           * 校驗(yàn)當(dāng)前登錄用戶的用戶類型
           */
          private UserTypeEnum userType;
          /**
           * 登錄的頁(yè)面  當(dāng)訪問需要登錄的頁(yè)面時(shí),自動(dòng)轉(zhuǎn)到該頁(yè)面
           */
          private String loginUrl; 
          /**
           * 設(shè)置請(qǐng)求與應(yīng)答的上下文
           */
          @Override
          public void setWebContext(HttpServletRequest request, HttpServletResponse response, UserTypeEnum userType, String loginUrl){
              this.request = request;
              this.response = response;
              this.userType = userType;
              this.loginUrl = loginUrl;
              //重置當(dāng)前訪問的數(shù)據(jù)
              this.loginAccount = null;
              this.remoteIp = null;
          }
          /**
           * 當(dāng)前的請(qǐng)求對(duì)象
           * @return
           */
          protected HttpServletRequest getRequest(){
              //((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); 
              return this.request;
          }
          /**
           * 獲取當(dāng)前的應(yīng)答對(duì)象
           * @return
           */
          protected HttpServletResponse getResponse(){
              return this.response;
          }
          /*********************獲取Request與Response*******************/
          
          /*********************用戶登錄相關(guān)*******************/
          /**
           * 當(dāng)前登錄的賬號(hào)
           */
          private LoginAccount loginAccount = null;
          /**
           * 該對(duì)象在調(diào)用isLogged方法后才有效
           * @return
           */
          @Override
          public LoginAccount getLoginAccount(){
              if (this.loginAccount == null){
                  this.loginAccount = new LoginAccount();
                  if (!this.getCookieObject(LoginAccount.USERCOOKINAME, this.loginAccount)){
                      this.loginAccount = null;
                      return null;
                  }
                  if (!UserLoginBLL.verifyToken(this.loginAccount, this.userType)){//校驗(yàn)令牌
                      this.loginAccount = null;
                      return null;
                  }
              }
              return this.loginAccount;
          }
          /**
           * 判斷用戶是否已經(jīng)登錄
           * @return
           */
          protected boolean isLogged(){
              return this.getLoginAccount() != null;
          }
          /**
           * 跳轉(zhuǎn)到登錄頁(yè)面
           * @return
           */
          protected ModelAndView toLoginView(){
              return new ModelAndView(new RedirectView(this.loginUrl), "tourl", this.getRequest().getRequestURI());
          }
          /*********************用戶登錄相關(guān)*******************/
          
          /*********************獲取訪問IP*******************/
          /**
           * 獲取遠(yuǎn)程訪問IP
           */
          private String remoteIp = null;
          /**
           * 獲取遠(yuǎn)程訪問IP
           * @return
           */
          protected String getRemoteIp(){
              HttpServletRequest request = this.getRequest();
              if (this.remoteIp==null || this.remoteIp.length()==0)
              {
                  this.remoteIp = request.getHeader("x-forwarded-for");
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getHeader("X-Real-IP");
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getHeader("Proxy-Client-IP");
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getHeader("WL-Proxy-Client-IP");
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getHeader("HTTP_CLIENT_IP");
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getHeader("HTTP_X_FORWARDED_FOR");
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getRemoteAddr();
                  }
                  if (this.remoteIp == null || this.remoteIp.isEmpty() || "unknown".equalsIgnoreCase(this.remoteIp)) {
                      this.remoteIp= request.getRemoteHost();
                  }
              }
              return remoteIp;
          }
          /*********************獲取訪問IP*******************/
          /*********************獲取訪問參數(shù)*******************/
          /**
           * 獲取所有參數(shù)
           * @return
           */
          protected Map<String,String[]> getParams(){
              HttpServletRequest request = this.getRequest();
              return request.getParameterMap();
          }
          /**
           * 獲取指定的配置
           * @param name
           * @return
           */
          protected String getParam(String name){
              return getParam(name, "");
          }
          /**
           * 根據(jù)參數(shù)名稱獲取參數(shù)值,如果沒有找到則以默認(rèn)值返回
           * @param name
           * @param defaultValue
           * @return
           */
          protected String getParam(String name, String defaultValue){
              HttpServletRequest request = this.getRequest();
              String strValue = request.getParameter(name);
              return strValue == null ? defaultValue : strValue;
          }
          /**
           * 獲取整形的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected int getIntParam(String name){
              return getParam(name, 0);
          }
          /**
           * 獲取整形的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected int getParam(String name, Integer defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Integer.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取長(zhǎng)整形的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected long getLongParam(String name){
              return getParam(name, 0L);
          }
          /**
           * 獲取長(zhǎng)整形的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected long getParam(String name, Long defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Long.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取單精度的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected float getFloatParam(String name){
              return getParam(name, 0F);
          }
          /**
           * 獲取單精度的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected float getParam(String name, Float defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Float.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取雙精度的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected double getDoubleParam(String name){
              return getParam(name, 0D);
          }
          /**
           * 獲取雙精度的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected double getParam(String name, Double defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Double.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取字節(jié)的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected byte getByteParam(String name){
              return getParam(name, (byte)0);
          }
          /**
           * 獲取字節(jié)的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected byte getParam(String name, Byte defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Byte.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取字節(jié)的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected short getShortParam(String name){
              return getParam(name, (short)0);
          }
          /**
           * 獲取字節(jié)的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected short getParam(String name, Short defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Short.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取布爾的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected boolean getBooleanParam(String name){
              return getParam(name, false);
          }
          /**
           * 獲取布爾的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected boolean getParam(String name, Boolean defaultValue){
              String strValue = getParam(name, defaultValue.toString());
              try{
                  return Boolean.valueOf(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /**
           * 獲取日期的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected Date getDateParam(String name){
              return getParam(name, new Date());
          }
          /**
           * 獲取日期的參數(shù)值
           * @param name
           * @param defaultValue
           * @return
           */
          protected Date getParam(String name, Date defaultValue){
              String strValue = getParam(name);
              if (strValue == null || strValue.length() == 0)
                  return defaultValue;
              try{
                  return DateUtil.getDateFromString(strValue);
              }
              catch(Exception e){
                  return defaultValue;
              }
          }
          /*********************獲取訪問參數(shù)*******************/
          /*******************操作Cookie********************/
          /**
           * 獲取指定鍵的Cookie
           * @param cookieName
           * @return 如果找到Cookie則返回 否則返回null
           */
          protected Cookie getCookie(String cookieName){
              if (StringUtil.isNullOrWhiteSpace(cookieName) || this.getRequest().getCookies() == null)
                  return null;
              for(Cookie cookie : this.getRequest().getCookies()){
                  if (cookieName.equals(cookie.getName()))
                      return cookie;
              }
              return null; 
          }
          /**
           * 獲取指定鍵的Cookie值
           * @param cookieName
           * @return 如果找到Cookie則返回 否則返回null
           */
          protected String getCookieValue(String cookieName){
              Cookie cookie = this.getCookie(cookieName);
              return cookie == null ? null : cookie.getValue();
          }
          /**
           * 刪除指定的Cookie
           * @param cookieName
           */
          protected void removeCookie(String cookieName){
              HttpServletResponse response = this.getResponse();
              Cookie cookie = new Cookie(cookieName, null);
              cookie.setMaxAge(0);
              response.addCookie(cookie);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie里   Cookie只在會(huì)話內(nèi)有效
           * @param cookieName
           * @param inst
           */
          protected void setCookie(String cookieName, Object inst){
              this.setCookie(cookieName, "/", inst);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie  Cookie只在會(huì)話內(nèi)有效
           * @param cookieName
           * @param path
           * @param inst
           */
          protected void setCookie(String cookieName, String path, Object inst){
              if (StringUtil.isNullOrWhiteSpace(cookieName) || inst == null)
                  return;
              String strCookieString = this.object2CookieString(inst);
              this.setCookie(cookieName, path, strCookieString);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie
           * @param cookieName
           * @param inst
           * @param expiry (秒)設(shè)置Cookie的有效時(shí)長(zhǎng), 負(fù)數(shù)不保存,0刪除該Cookie 
           */
          protected void setCookie(String cookieName, Object inst, int expiry){
              this.setCookie(cookieName, "/", inst, expiry);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie
           * @param cookieName
           * @param path
           * @param inst
           * @param expiry (秒)設(shè)置Cookie的有效時(shí)長(zhǎng), 負(fù)數(shù)不保存,0刪除該Cookie 
           */
          protected void setCookie(String cookieName, String path, Object inst, int expiry){
              if (StringUtil.isNullOrWhiteSpace(cookieName) || inst == null || expiry < 0)
                  return;
              String strCookieString = this.object2CookieString(inst);
              this.setCookie(cookieName, path, strCookieString, expiry);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie里   Cookie只在會(huì)話內(nèi)有效
           * @param cookieName
           * @param cookieValue
           */
          protected void setCookie(String cookieName, String cookieValue){
              this.setCookie(cookieName, "/", cookieValue);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie  Cookie只在會(huì)話內(nèi)有效
           * @param cookieName
           * @param path
           * @param cookieValue
           */
          protected void setCookie(String cookieName, String path, String cookieValue){
              HttpServletResponse response = this.getResponse();
              if (StringUtil.isNullOrWhiteSpace(cookieName) || cookieValue == null)
                  return;
              Cookie cookie = new Cookie(cookieName, cookieValue);
              if (!StringUtil.isNullOrWhiteSpace(path)){
                  cookie.setPath(path);
              }
              response.addCookie(cookie);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie
           * @param cookieName
           * @param cookieValue
           * @param expiry (秒)設(shè)置Cookie的有效時(shí)長(zhǎng), 負(fù)數(shù)不保存,0刪除該Cookie 
           */
          protected void setCookie(String cookieName, String cookieValue, int expiry){
              this.setCookie(cookieName, "/", cookieValue, expiry);
          }
          /**
           * 保存一個(gè)對(duì)象到Cookie
           * @param cookieName
           * @param path
           * @param cookieValue
           * @param expiry (秒)設(shè)置Cookie的有效時(shí)長(zhǎng), 負(fù)數(shù)不保存,0刪除該Cookie 
           */
          protected void setCookie(String cookieName, String path, String cookieValue, int expiry){
              if (StringUtil.isNullOrWhiteSpace(cookieName) || cookieValue == null || expiry < 0)
                  return;
              HttpServletResponse response = this.getResponse();
              if (StringUtil.isNullOrWhiteSpace(cookieName) || cookieValue == null)
                  return;
              Cookie cookie = new Cookie(cookieName, cookieValue);
              if (!StringUtil.isNullOrWhiteSpace(path)){
                  cookie.setPath(path);
              }
              cookie.setMaxAge(expiry);
              response.addCookie(cookie);
          }
          /**
           * 把對(duì)象轉(zhuǎn)換為Cookie存貯字串
           * @param inst
           * @return
           */
          private String object2CookieString(Object inst){
              if (inst == null)
                  return "";
              StringBuilder strCookieValue = new StringBuilder();
              for(java.lang.reflect.Field field : inst.getClass().getDeclaredFields()){
                  try{
                      if (java.lang.reflect.Modifier.isStatic(field.getModifiers()) || 
                              java.lang.reflect.Modifier.isFinal(field.getModifiers())){
                          continue;
                      }    
                      if (!this.isSimpleProperty(field.getType())) continue;//不是元數(shù)據(jù)
                      field.setAccessible(true);// 提升權(quán)限
                      Object objValue = field.get(inst);
                      String strValue;
                      if (field.getType().equals(Date.class)){
                          strValue = DateUtil.getLongStrFromDate((Date)objValue);
                      }else{
                          strValue = objValue == null ? "" : objValue.toString();
                      }
                      if (strCookieValue.length() > 0){
                          strCookieValue.append(String.format("&%s=%s", field.getName(), URLEncoder.encode(strValue,"UTF-8")));
                      }
                      else{
                          strCookieValue.append(String.format("%s=%s", field.getName(), URLEncoder.encode(strValue,"UTF-8")));
                      }    
                  }
                  catch(Exception e){
                      log.fatal("object2CookieString faild", e);
                      continue;
                  }
              }
              return strCookieValue.toString();
          }
          /**
           * 從Cookie中獲對(duì)對(duì)象
           * @param cookieName
           * @param inst
           * @return 如果獲取轉(zhuǎn)換成功,則返回true, 否則返回false
           */
          protected boolean getCookieObject(String cookieName, Object inst){
              if (inst == null){
                  return false;
              }
              String cookieValue = this.getCookieValue(cookieName);
              if (cookieValue == null){
                  return false;
              }
              for(java.lang.reflect.Field field : inst.getClass().getDeclaredFields()){
                  try{
                      if (java.lang.reflect.Modifier.isStatic(field.getModifiers()) || 
                              java.lang.reflect.Modifier.isFinal(field.getModifiers())){
                          continue;
                      }
                      if (!this.isSimpleProperty(field.getType())) continue;//不是元數(shù)據(jù)
                      field.setAccessible(true);// 提升權(quán)限
                      
                      Pattern pattern = Pattern.compile(String.format("(^|&)%s=([^(&|$)]+)", field.getName()));
                      Matcher matcher = pattern.matcher(cookieValue);
                      String strValue = "";
                      if (matcher.find()){
                          strValue = matcher.group(2);
                          strValue = URLDecoder.decode(strValue, "UTF-8");
                      }
                      field.set(inst, ConvertUtil.convertSimpleValue(field.getType(), strValue));
                  }
                  catch(Exception e){
                      log.fatal("getCookieObject faild", e);
                      return false;
                  }
              }
              return true;
          }
          /**
           * 是否是簡(jiǎn)單的數(shù)據(jù)類型
           * @param type
           * @return
           */
          private boolean isSimpleProperty(Class<?> propType){
              if (!propType.isPrimitive() && !propType.isEnum() && (!propType.equals(String.class) && !propType.equals(Date.class)))
              {
                  return false;
              }
              return true;
          }
          /*******************操作Cookie********************/
      }

      3、編寫攔截器

      View Code LoggedInterceptor/**
       * 已經(jīng)登錄攔截器
       * @author Administrator
       *
       */
      public class LoggedInterceptor extends HandlerInterceptorAdapter {


          /**
           * 登錄頁(yè)面的URL
           */
          private UserTypeEnum userType = UserTypeEnum.Personal;
          /**
           * 登錄的頁(yè)面URL  當(dāng)未登錄訪問已登錄的頁(yè)面時(shí),自動(dòng)跳轉(zhuǎn)到該頁(yè)面
           * @param loginUrl
           */
          public void setUserType(UserTypeEnum userType){
              this.userType = userType;
          }
          /**
           * 登錄頁(yè)面的URL
           */
          private String loginUrl;
          /**
           * 登錄的頁(yè)面URL  當(dāng)未登錄訪問已登錄的頁(yè)面時(shí),自動(dòng)跳轉(zhuǎn)到該頁(yè)面
           * @param loginUrl
           */
          public void setLoginUrl(String loginUrl){
              this.loginUrl = loginUrl;
          }
          /**
           * 利用正則映射到需要攔截的路徑
           */
          private String[] regexUrls;
          /**
           * 利用正則映射到需要攔截的路徑
           * @param mappingURL
           */
          public void setRegexUrls(String[] regexUrls) {
              this.regexUrls = regexUrls;
          }
          /**
           * 在Controller方法前進(jìn)行攔截
           */
          public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
              //如果handler controller實(shí)現(xiàn)了接口,則設(shè)置上下文
              LoginAccount loginAccount = null;
              if (handler != null && handler instanceof IWebContext){
                  ((IWebContext)handler).setWebContext(request, response, userType, this.loginUrl);
                  loginAccount = ((IWebContext)handler).getLoginAccount();
              }
              
              String strUrl = request.getRequestURI();
              if (loginAccount == null && !StringUtil.isNullOrEmpty(strUrl) && regexUrls != null && regexUrls.length >0){
                  for(String regex : regexUrls){
                      if (StringUtil.isNullOrEmpty(regex)){
                          continue;
                      }
                      if (strUrl.matches(regex)){ //當(dāng)前頁(yè)面需要登錄
                          String strToUrl = "/login.htm?tourl=" + URLEncoder.encode(strUrl, "utf-8");
                          if ("GET".equalsIgnoreCase(request.getMethod())){
                              response.sendRedirect(strToUrl);//轉(zhuǎn)到登錄頁(yè)    
                          }else{
                              //Json返回?cái)?shù)據(jù)
                              JsonResponse jsonResponse = new JsonResponse();
                              jsonResponse.setFaildMsg(JsonResponse.Nologin, "請(qǐng)登錄后操作", strToUrl);
                              Gson gson = null;
                              PrintWriter printWriter = null;
                              try{
                                  gson = new Gson();
                                  String strJson = gson.toJson(jsonResponse);
                                  response.setContentType("application/json");
                                  printWriter = response.getWriter();
                                  printWriter.print(strJson);
                                  printWriter.flush();
                              }
                              finally{
                                  if (printWriter != null){
                                      printWriter.close();
                                  }
                                  gson = null;
                              }
                          }
                          return false;
                      }
                  }
              }
              return true;
          }

          /**
           * This implementation is empty.
           */
          public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
              if (handler != null && handler instanceof IWebContext
                      && modelAndView != null && "GET".equalsIgnoreCase(request.getMethod())){
                  //當(dāng)get的時(shí)候,系統(tǒng)自動(dòng)封閉loginAccount到modelAndView里
                  modelAndView.addObject("loginAccount", ((IWebContext)handler).getLoginAccount());
              }
          }

          /**
           * 在Controller方法后進(jìn)行攔截
           */
          public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
              
          }
      }

      4、修改配置文件 

      View Code SpringMvc-servelet.<!-- 以下正則符合的頁(yè)面必須登錄后才能訪問 -->
          <bean id="loggedInterceptor" >
              <!-- 用戶類型 注入 -->
              <property name="userType">
                  <bean  factory-method="fromValue">
                      <constructor-arg>
                          <value>1</value>
                      </constructor-arg>
                  </bean>
              </property>
              <!-- 登錄頁(yè)面 -->
              <property name="loginUrl" value="login.htm"/>
              <!-- 必須登錄后才能訪問的頁(yè)面 -->
              <property name="regexUrls">
                  <list>
                      <value>/rentlist.*</value>
                      <value>/rentdetail.*</value>
                      <value>/getrentpagelist.*</value>
                      <value>/cancelrentrecord.*</value>
                  </list>
              </property>
          </bean>
          <bean >
               <property name="interceptors">
                   <list>
                       <ref bean="loggedInterceptor"/>
                   </list>
               </property>
          </bean>
          <!-- Json支持 -->
           <bean id="jacksonMessageConverter"  />
          <bean >
               <property name="messageConverters">
                  <list>
                      <ref bean="jacksonMessageConverter"/>
                    </list>
              </property>
          </bean>
          

       

      標(biāo)簽:
      1

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多