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

使用Servlet和JSP验证数字

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

使用Servlet和JSP验证数字

最基本的方法是

Map<String, String>
在请求范围内使用,其中键代表字段名称,值代表验证错误-如果有的话。

BeerDAO beerdao = new BeerDAO();Beer beer = beerdao.getBeer(id); request.setAttribute("beer", beer);// ...Map<String, String> messages = new HashMap<String, String>();request.setAttribute("messages", messages);// ...String rating = request.getParameter("rating");if (rating == null) {    messages.put("rating", "Please enter rating");} else if (!rating.matches("\d+")) {    messages.put("rating", "Please enter numbers only");} else {    beer.setRating(Integer.valueOf(rating));}// ...

然后在视图中

<input name="rating" value="${empty messages.rating ? beer.rating : param.rating}" /><span >${messages.rating}</span>

如果没有消息(因此验证已通过),则条件表达式将显示啤酒等级,否则将用户提交的值作为请求参数。


具体问题 无关 ,重新显示用户提交的数据而不用XML进行转义会导致XSS


攻击。我强烈建议安装JSTL并使用

fn:escapeXml()
函数对这些值进行转义。

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>   ...<input name="rating" value="${fn:escapeXml(empty messages.rating ? beer.rating : param.rating)}" />


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

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

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