gpt4 book ai didi

web - Web Java-spark 应用程序的正确 url 流

转载 作者:行者123 更新时间:2023-12-04 19:37:26 26 4
gpt4 key购买 nike

我的网络应用程序是用 Spark Framework 创建的(与服务器在同一页面上连接)第一页的 url 是 http://localhost:4567/start用户从这里点击一个按钮来决定四个任务之一。表单操作按钮是/start

服务器检查一切正常,然后从页面返回此任务的新页面(例如 fixsongs)(即返回页面内容作为字符串)。

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page

ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
//Display Page
post(RoutePath.FIX, (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

问题是url 保持不变,即在用户所在的位置后面有一个

现在我已经想出了解决办法,而不是服务器返回页面它现在重定向到/fixsongs.go(这在路由中映射)调用方法,然后将页面内容作为字符串返回并修改 url。

post(RoutePath.START, (request, response)       -> new ServerStart().processRoute(request, response));//User has picked task on start page
ServerFixSongs ssfs = new ServerFixSongs();
path(RoutePath.STARTFIXSONGS, () ->
{
get(RoutePath.GO, (request, response) -> new FixSongsPage(request.session().attribute(FOLDER)).createPage(null, null)); //Display Page
post(RoutePath.FIX, (request, response) -> ssfs.startTask(request, response)); //User submits form on Options page
});

但是我有两个问题

  1. 这种更麻烦的方法是正确的方法吗
  2. 这些额外的重定向步骤是否会影响性能

请注意,我没有使用模板,而是使用 j2html 创建网页

我无法在第一次调用时直接重定向到 html 文件,因为 html 实际上并不存在,页面是动态创建的。

我还意识到,虽然当我从 START 页面提交开始任务时,我提交了一个 POST 请求,因为我正在重定向到 STARTFIXSONGS,这意味着在下一阶段用户可以使用 BACK 按钮返回到 STARTFIXSONGS。我宁愿他们不能这样做,所以这是否意味着我不应该在这种情况下使用重定向。

最佳答案

您的问题与 Spark 或 j2html 并没有真正相关,而是一般的网络应用程序。

Is this more cumbersome approach the correct way to do this

这取决于你想要什么。如果您希望用户能够使用浏览器按钮进行导航,请使用 Post-Redirect-Get 流程。如果你不想要这个,你可能应该使用 ajax requests ,您使用 JavaScript 向服务器发送消息,服务器响应更新 DOM 的指令(通常为 JSON 格式)

Do these additional redirect steps impact performance

还不够,你应该担心它。你可以多来一次往返,但在 99.9% 的情况下,这并不重要。如果您的目标用户群在不同的大陆使用 GPRS 浏览您的页面,那会,但情况可能并非如此。

关于web - Web Java-spark 应用程序的正确 url 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595949/

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