java - 小服务程序 : Handling many optional parameters

标签 java servlets parameters

只是想知道是否有更优雅或更标准的方法来处理可选参数,或者是否必须检查每个参数是否为空。我有 10 多个可选参数,所以它变得有些难看。

理想情况下,我想要类似 bash 命令的东西:getopts

public class MapImageServlet extends HttpServlet {
    ... constructor and other methods ...
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // OPTIONAL PARAMETERS
        if(request.getParameter("boarderSize") != null){
            double boarderSize = Double.valueOf(request.getParameter("boarderSize");
        }

        if(request.getParameter("boarderThickness") != null){
            double boarderThickness = Double.valueOf(request.getParameter("boarderThickness");
        }

        if(request.getParameter("boarderColor") != null){
            double boarderColor = Double.valueOf(request.getParameter("boarderColor");
        }
        ... do stuff with the parameters ...
    }
    ... other methods ...
}

最佳答案

像这样写一个工具

public class MapImageServlet extends HttpServlet {
//... constructor and other methods ...
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // OPTIONAL PARAMETERS
     boarderSize = ParamUtil.getDoubleValue(request,"boarderSize", defaultValue);

     boarderThickness = ParamUtil.getDoubleValue(request, "boarderThickness", defaultValue);

     boarderColor = ParamUtil.getDoubleValue(request,"boarderColor" , defaultValue);
     //... do stuff with the parameters ...
}

}
public class ParamUtil
{
public static double getDoubleValue(ServletRequest request, String paramName, double defaultValue)
{
     if(request.getParameter(paramName) != null){
        return Double.valueOf(request.getParameter(paramName));
    } else{
        return defaultValue;
    }
}
}

关于java - 小服务程序 : Handling many optional parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335759/

相关文章:

java - 获取 org.testng.TestNGException : Cannot find class in classpath: error in eclipse during running my program through testng. xml

java - 在servlet中获取sqlexception

java - 为什么我们使用 web.xml?

sql - ADO.NET 中 SQL 参数的默认大小

javascript - 如何通过url将参数传递给javascript并显示在页面上?

reporting-services - SSRS参数值关系

java - 使用 spring 框架将 Java 对象中的顺序保存为 json

java - 警告 : [serial] serializable class SomeClass has no definition of serialVersionUID

Java 负载因子权衡

java - javax.servlet.Servlet#getServletConfig() 的线程安全