取得要求完全URLアドレス

2328 ワード

Web開発ではログインしていないと指定ページに移動できないという問題が発生することがあり、ユーザーにログインして登録ページにジャンプするよう促すと、ユーザーがログインに成功した後も指定ページにジャンプし続けるが、指定ページにジャンプすると指定ページのURLアドレスを知らなければならないため、登録ページのバックグラウンド処理で要求されたURLアドレスを取得しなければならず、ツール類を書き、各要求の発行毎に専用の完全なURLアドレスを取得する.
例:
//      URL       ,      
    public static String getUrl(HttpServletRequest request , HttpServletResponse response){
        StringBuffer uri = request.getRequestURL();
        String url = uri.toString();
        //      ,  Map  ,  
        Map<String, String[]> map = request.getParameterMap();
        SetString, String[]>> entry = map.entrySet();
        IteratorString, String[]>> iterator = entry.iterator();

        //    
        StringBuffer sb = new StringBuffer();
        while(iterator.hasNext()){
            Entry<String, String[]> item = iterator.next();
            //   
            String key = item.getKey();
            //   
            for(String value : item.getValue()){
                //           key=value&
                sb.append(key+"="+value+"&");
            }
        }

        String string = sb.toString();
        //  URL,   URL?key=value&key=value&           &
        url = url+"?"+string.substring(0, string.lastIndexOf("&"));
        return url;
    }