栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JSP中验证参数的最佳实践是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JSP中验证参数的最佳实践是什么?

两者都不是好的方法。控制器/业务逻辑不属于JSP(标记)。过滤器几乎不错,但不够具体。该工作应由Servlet完成。您正在将表单提交给Servlet进行后处理,对吧?听起来您还没有这样做,否则答案很简单。

在我们的Servlets标签Wiki页面中,您可以找到一个世界案例,该示例是将JSP与Servlet一起使用以对表单提交进行后处理的好方法。这是相关的摘录:

<input id="name" name="name" value="${fn:escapeXml(param.name)}"><span >${messages.name}</span>

String name = request.getParameter("name");if (name == null || name.trim().isEmpty()) {    messages.put("name", "Please enter name");}// ...request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);

此外,对于这种用例,还存在MVC框架,该框架删除了所有样板(重复的/重复的)servlet代码,例如JSF,Spring
MVC,Wicket,Stripes,Struts2等。例如,使用JSF看起来就像这样:

<h:inputText id="name" value="#{bean.name}" required="true" requiredMessage="Please enter name" /><h:message for="name" />

就这样。JSF的

FacesServlet
控制器Servlet将验证它是否已被填充,并在给定位置显示一条(可配置的)消息,而无需任何自定义Java代码。您甚至可以将其移至模型,JSF也对JSR303
bean验证也提供透明支持。例如

<h:inputText id="name" value="#{bean.name}" /><h:message for="name" />

@NotNull(message="Please enter name")private String name;

*根据您的修改进行 *更新

谢谢您的好的回答,但是我想知道如果您提供的服务是google chart API这样的服务,而您不能期望参数在发送之前已经过表单检查,那将是最佳做法。
示例:https://chart.googleapis.com/chart?cht
=&chd =&chs
=&

additional_parameters

只需以相同的方式使用servlet。唯一的区别是,您必须在其中实施作业,

doGet()
而不是
doPost()
在必要时返回HTTP 400:)再次,请检查我们的servlets标记wiki页面,以更好地了解其目的。或者更进一步,请使用Web服务框架,例如JAX-
WS或JAX-RS,它们像MVC框架对HTML页面所做的那样透明地完成此工作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号