困扰多年的一个问题:在html文件转向Servlet文件处理时,怎么实现在Servlet中弹出警告框(alert()),但又不出现Servlet页面。
在MVC模式编程下,如果用户在html页面文件的表单(FORM)中输入了信息,并且点击了提交(Submit)。按照MVC设计模式,下一步应该由Servlet处理来自用户的输入, 如果经过Servlet的一些必要(经过JavaBean)判断后,发现用户输入的信息有误,现在就应该弹出提示框(alert())。我想问的就是:
从用户使用的角度和习惯出发,应该先显示原来的用户的html页面文件,而不是Servlet页面文件,然后再显示提示框(alert())。给用户的感觉就好像这个警告框(alert())是Html文件弹出的。
也就是用户的输入界面不变,如有问题,就马上给出提示框(alert()),而不是中间会出来一个Servlet页面(如出来,会给用户不友好的感觉),但按照MVC模式,好像Servlet页面一定会出现。
------解决方案--------------------用ajax了
------解决方案--------------------web模型,决定了大致就是这样一种情况,
这是无解的,
验证分两种,一种是客户端验证,
另一种是服务器端验证,传统的方式,
要想进行服务器端验证,就必然需要刷新页面,
如果网速快,可能就感觉不出来,
如果网速慢,就会等很长时间,期间可能出现白屏。
不过,现在可以采用ajax或者其它类似技术,
或者,用iframe,内部提交验证,
外部看不出来,
另外说下白屏,当浏览器认知你css设置背景为白色时,
而其它内容又没有加载进来,就白屏了,
同理,可以搞成黑屏,蓝屏
------解决方案--------------------
------解决方案--------------------我没太明白楼主的意思,不过我写了一个测试例子
在servlet中 加上response.sendRedirect("index.jsp?error=yes");
然后在index.jsp中加上
<script>
var errori ='<%=request.getParameter("error")%>';
alert(errori);
</script>
注意:这个JavaScript脚本一定加在最后的</html>标签上面放到最后
正如朋友们说的 要是想达到更好的用户体验效果 那么 可以使用ajax 其实楼主说ajax没学过 你会JavaScript 那么我觉得你说的不对 ajax其实不是新的语言 这个楼主自己上网查查相关资料