java在JSP中验证参数的最佳实践是什么?
我正在实现一个JSP,它需要在运行JSP之前验证一些参数
- 建议:使用 标记库
- 建议:预分析筛选器中的参数
你觉得怎么样
编辑
谢谢你的回答,但我想知道如果你提供的是像google chart API这样的服务,你不能期望参数在发送前通过表单检查,那么最好的做法是什么。 例子: https://chart.googleapis.com/chart?cht=&;冠心病=&;chs=&;。。。其他参数
你可以在下面搜索框中键入要查询的问题!
我正在实现一个JSP,它需要在运行JSP之前验证一些参数
你觉得怎么样
编辑
谢谢你的回答,但我想知道如果你提供的是像google chart API这样的服务,你不能期望参数在发送前通过表单检查,那么最好的做法是什么。 例子: https://chart.googleapis.com/chart?cht=&;冠心病=&;chs=&;。。。其他参数
# 1 楼答案
使用MVC框架(Spring MVC、Stripes、Struts 2等)并验证控制器类中的参数。每一个MVC框架都支持参数验证,并且可以清晰地分离关注点
示例:Spring MVC自动注册JSR-303样式的参数验证(如果类路径上有JSR-303提供程序,例如Hibernate Validator)when using ^{}
# 2 楼答案
两者都不是好办法。控制器/业务逻辑不属于JSP(标记)。过滤器几乎不错,但不够具体。这项工作应该由servlet完成。您将表单提交到servlet进行后处理,对吗?听起来你还没有这么做,否则答案会很简单
在our servlets tag wiki page中,您可以找到一个hello world示例,它是使用JSP和Servlet对表单提交进行后处理的好方法。以下是相关内容的摘录:
与
此外,还有一些MVC框架删除了此类用例的所有样板(重复/重复)servlet代码,例如JSF、Spring MVC、Wicket、Stripes、Struts2等。例如JSF它看起来就像这样:
就这些。JSF的
FacesServlet
控制器servlet将验证是否已填充,并在给定位置显示(可配置)消息,而不需要任何自定义Java代码。您甚至可以将其移动到模型中,JSF还对JSR303 bean验证提供了透明的支持。例如与
根据您的编辑更新:
用同样的方法使用servlet。唯一的区别是,您必须在
doGet()
而不是doPost()
中实现作业,如果有必要,在出现错误时返回HTTP 400:)再次检查our servlets tag wiki page以更好地理解它们的用途。或者更进一步,改用webservice框架,比如JAX-WS或JAX-RS,它们透明地完成这项工作,就像MVC框架对HTML页面所做的那样