如何从发布方法获取数据后重定向
How to redirect after get data from post method
我有一个post method to servlet
,所以servlet在将请求转发到另一个页面后返回一个网页getServletContext().getRequestDispatcher("/AnotherServlet").forward(request, response);
所以我不能直接重定向window.location ="/Anotherservlet"
我
尝试了很多解决方案:传递带有链接的参数,它正在工作,但我会更好的一个,
我尝试了var w = window.open(); w.document.write(data);
它正在工作,但页面的 url 仍然是我的主页,页面仍在加载,即使页面是从服务器下载的(所有带有 ready 语句的功能都不起作用),所以当我使用 href="#" 单击按钮时,它会将我重定向到主页因为正如我之前所说 URL=/不是 =/另一个servlet,我
不喜欢获取方法来执行此操作或 cookie,我为此搜索其他解决方案,谢谢帮助
这是我的仆人:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name= request.getParameter("name");
String pass=request.getParameter("pass");
if (name.equals("a")&&pass.equals("0cc175b9c0f1b6a831c399e269772661"))
{
getServletContext().getRequestDispatcher("/BookListServlet").forward(request, response);
}
else
{
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.print("error");
out.flush();
out.close();
}
}
这是我的BookListServlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
books= new bookiml().get_books();
String name= request.getParameter("name");
String ipAddress = request.getRemoteAddr();
request.setAttribute("books", books);
request.setAttribute("userip", ipAddress);
request.setAttribute("user", name);
request.setAttribute("title", "Book listing");
getServletContext().getRequestDispatcher("/META-INF/pages/book-list.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
我不想在检查登录身份验证后从 servlet 获取页面,但并非没有在链接中传递参数,如下所示:'
$.ajax({
url: 'identification',
type: 'POST',
data:{pass:$hash,name:$name},
timeout: 1000,
success: function(data){
var target = document.getElementById('spinner');
spinner = new Spinner(opts).spin(target);
$('#spinner').fadeIn();
if (data=='error')
{
$("#messages").html(" Check your username and password.");
$('#name').css('border-color','#B94A48');
$('#pass').css('border-color','#B94A48');
$('#spinner').fadeOut();
}
else
{
$("#messages").html("");
$('#spinner').fadeOut();
window.location ="/BookListServlet?name="+$name;
}
}
});`
据我了解,您只想使用 servlet
重定向?
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", "http://splinky.com/");
您可以将 url 放在 ajax 响应中,以防成功时要重新编辑:
示例 JS 响应:
{ status: 'ok', redirect: '/example' }
并在客户端使用 js 重定向。
客户端代码:
$("form.ajaxForm").submit( function(e) {
var form = $(this);
form.ajaxSubmit({
dataType: 'json',
success: function(data) {
if( data.redirect != "" ) {
window.location = data.redirect;
}
}
});
return false;
});
你必须使用jQuery表单插件才能工作。参见:http://jquery.malsup.com/form/#getting-started
相关文章:
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么