LoginSignup
2
3

More than 5 years have passed since last update.

Java Servletでリクエストパラメータの存在確認

Last updated at Posted at 2016-01-22

Servletのリクエストパラメータの存在確認のメモです。

指定したキーのパラメータが存在しなければエラーを返す、というFWを使えば用意されてそうな機能を実現するスニペットです。
keysのキーが存在しなければretにエラーメッセージを返します。

Java1.5以上で動作です。

詳しく知らないのですが、
Java8だともっと簡単できるんじゃないかとか思っています。

String [] keys = {"u","email"};
String ret = checkKeys(request,keys);

リクエストの内容をまわして存在しないキーをみつける処理

    /**
     * キー一覧を渡して存在しないキーがあればListにいれてかえす。
     * @param req
     * @param keys
     * @return
     */
    public static List<String> getNotExistKeys(HttpServletRequest req,String keys[]){


        List<String> notExistKeys = new ArrayList<String>();
        boolean notExit;
        for(int i=0;i<keys.length;i++){
            notExit = true;

                        Enumeration<String> parameterNames = req.getParameterNames();
            while (parameterNames.hasMoreElements()) {

                String paramName = parameterNames.nextElement();
                if (keys[i].equals(paramName)){
                    String paramValues = req.getParameter(paramName);
                    if (!paramValues.isEmpty()) notExit = false;
                }
            }
            if (notExit == true) notExistKeys.add(keys[i]);
        }

        return notExistKeys;
    }

存在しないキーがあればメッセージをかえす。

    /**
     * checkKeys
     * @param req
     * @param keys
     * @return
     */
    public static String checkKeys(HttpServletRequest req,String keys[]){
        List<String> emptyParams = getNotExistKeys(req,keys);
        String callback = req.getParameter("callback");

        if (emptyParams.size()>0){
            return emptyParams.toString()+"が存在しません。";
        }else{
            return "OK";
        }

    }

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3