我有一个servlet从表单中获取数据并将其插入数据库.在servlet中我使用bean并通过beans获取/设置数据.一旦插入发生,用户被重定向到视图,显示页面的确切方式看起来.这个页面是JSP.现在,当我执行此页面刷新(jsp)时,它再次确实将数据插入到数据库中.现在我需要防止这种情况发生.我在想的不是将其重定向到jsp,而是让我重定向到另一个servlet并从那个servlet让我做了get请求并将它转发给jsp进行查看.通过这种方法,我重构了我的jsp,我有很多jsp会受到影响.
他们是否可以阻止在页面刷新完成后插入数据库?
我还检查了数据库端假设我可以添加唯一约束,我确实有一些通过初始servlet生成的唯一列,所以每个插入值都不同,所以我不能真正使用DB方面的解决方案.
有人可以建议我,如果有这方面的工作吗?
更新:添加插入的代码,我手动刷新页面.像这样的错误是我错过了之前考虑的错误.它在数据库中正确插入并正确显示视图jsp中的所有数据.当视图jsp时刷新,我在数据库中获得双重插入.
更新.删除代码.将发布代码的相关部分而不是整个代码.
问题已解决.
javax.servlet.http.HttpSession session = request.getSession();
if (session.getAttribute("insertflag") == null) {
mybean sf = new mybean();
sf.insert(form);
session.setAttribute("insertflag", insertid);
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/test/showtestform.jsp");
rd.forward(request, response);
} else {
RequestDispatcher rd = request.getRequestDispatcher("/errorpage.jsp");
rd.forward(request, response);
}
Run Code Online (Sandbox Code Playgroud)
在错误页面jsp中,我删除了属性集,然后在该页面中提供链接以再次返回主页.
我正在网站上实现一个功能,我通过5个输入框获取用户的位置,然后需要在谷歌地图中显示位置,
我知道这个过程叫做地理编码,但在做了一些搜索之后我又遇到了这个链接,
http://www.seomoz.org/ugc/everything-you-never-wanted-to-know-about-google-maps-parameters
此链接告诉我们可以将位置作为查询字符串参数传递给Google地图的网址.
此过程是否有效,是否以这种方式限制其使用
我有一个JSP,在那个JSP中我有一个类似的链接
http://mydomain.com/verify.do?email=emailid&id=123
现在,当用户点击该链接时,它将转到我的velocityview servlet,现在我的问题是如何在速度servlet中提取这些参数并将其放入上下文中,以便我可以将其发送到我的模板.
我尝试了getparameter,#set(#request.getAttribute(email)等.但由于某种原因,我没有看到进入上下文或模板的值.
我知道那里有速度参数工具,但我无法找到如何安装和使用它.如果有人能指出我正确的方向,我会很感激.
我不确定这是什么原因.我复制了示例代码并尝试在localhost上运行Dreamweaver.But由于某些原因我看不到地图被加载.我记得早些时候曾经加载它但是现在它没有加载.我有有效的api密钥,我的网站仍然不公开.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
}
function codeAddress() {
var address = document.getElementById('address').value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var …Run Code Online (Sandbox Code Playgroud)