簡體   English   中英

使用Spring Boot在@PathVariable參數值包含'#'字符后出現問題

[英]Has problems after @PathVariable parameter value containing the '#' character,with Spring Boot

  • 我正在使用Spring MVC和Spring Boot
  • 我已經開發了demopro-dispatcher-servlet.xml ,示例代碼是

     <mvc:interceptor> <mvc:mapping path="/login/**" /> <ref bean="loginInterceptor" /> </mvc:interceptor> <bean id="loginInterceptor" class="com.demo.interceptor.LoginInterceptor" /> 
  • 我的LoginInterceptor示例代碼是

     private static String[] SERVLET_PATHS = { "/login/email/password" .. } 
  • 我的LoginController示例代碼是

     @Controller @RequestMapping("login") public class LoginController{ ...... @RequestMapping("/email/password/{email:.+}/{password:.+}") @Transactional public @ResponseBody void authenticationForLogin(@PathVariable String email, @PathVariable String password, HttpServletRequest request, HttpServletResponse response) { //i tried this code /* String restOfTheUrl1 = (String) request.getAttribute( HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); logger.debug("Here password is : "+password+" : "+restOfTheUrl1); */ logger.debug("Here password is : "+password); //Its print demo!@ but input is demo!@#$%^ 
  • 我的請求網址:“ http:localhost:8080 / demopro / login / email / password / {email} / {password}

  • 正在從郵遞員那里撥打URL:“ http:localhost:8080/demopro/login/email/password/acecd@gmail.com/demo!@#$%^

  • 密碼打印像演示!

  • 幫助節省時間 ,我只想更改服務器端。
  • 先感謝您..

當您傳遞敏感數據(如電子郵件和密碼)時,建議在此處使用url編碼/解碼。您將需要從UI傳遞經過編碼的url,然后在控制器中將其解碼為

String result = URLDecoder.decode(url , "UTF-8");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM