gpt4 book ai didi

java - 如何使用sendRedirect或session或forward仅刷新我的网页一次?

转载 作者:行者123 更新时间:2023-12-01 09:37:52 28 4
gpt4 key购买 nike

现在在我的页面中我有一个参数调用 personid,如果访问者输入像这样的 url:http://helloworld.com?personid=123,我会返回personid为123的人信息,我无法知道这个人是否真实,所以我决定这个人什么时候访问第一次页面,我会使用sendRedirect,然后附加其他参数。但是现在这种方式是错误的。我可以使用session或其他方式只刷新一次页面吗?

    <%
String personid = request.getParameter("personid ");
String vpersonid= request.getParameter("vpersonid");
if (vpersonid== null) {
String url="http://myserver/distinguishusrtoken.do?redirect_uri=http://helloworld.com/index.jsp?personid=123&personid ="+personid ;
response.sendRedirect(url);
}
%>

当人们访问网络http://helloworld.com?personid=123时,最终的URL是http://helloworld.com?personid=123&ppersonid=123 >;但是如果人们看到关键字并直接输入网址http://helloworld.com?personid=123&ppersonid=123,虽然这是一个假网址,但我无能为力。如何只重定向到 self 页面一次?我尝试使用 session ,但它是一个无限循环?

    <%
String personid = request.getParameter("personid ");
String vpersonid = request.getParameter("vpersonid ");
if(response.getHeader("personid")==null||!personid.equals(response.getHeader("personid"))){
String url="http://myserver/distinguishusrtoken.do?redirect_uri=http://helloworld.com/index.jsp?personid=123&personid ="+personid ;
vpersonid =personid ;
response.setHeader("personid ", personid );
response.sendRedirect(url);
}
%>

最佳答案

每当您遇到这种情况时,我都会建议您重新考虑您的架构和/或方法。例如,对于您当前的问题,我建议您使用过滤器。它将允许您使您的 servlet 和 JPS 免受非特定任务的影响。我不打算在这里发布任何代码,因为这个问题有点笼统,我宁愿建议看一下互联网上过滤器的一些示例。例如here .

顺便说一句,您在问题中添加了标签 spring ,所以我可以假设您在应用程序中使用 Spring 框架。如果是这样,框架可以承担很多事情,所以你不需要手动提取请求参数。

关于java - 如何使用sendRedirect或session或forward仅刷新我的网页一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700434/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com