【问题标题】:JavaScript inside servlet to redirect the page. Is it a good practice?servlet 中的 JavaScript 用于重定向页面。这是一个好习惯吗?
【发布时间】:2013-02-08 04:39:01
【问题描述】:

我有一个一般性问题。我见过有人在 Servlet 或提交页面中编写 javascript 以将请求重定向到另一个页面。喜欢

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SomeServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {  
out.println( "<script> location.replace('myPage.jsp'); </script>" );
  }
}

我的问题是,这样写是个好习惯吗(认为不是)?如果这不是一个好习惯,这样做的缺点是什么?

【问题讨论】:

    标签: javascript jsp servlets redirect request


    【解决方案1】:

    这是非常糟糕的做法,因为:

    • 客户端(浏览器)需要在重定向完成之前下载整个页面
    • 这不适用于关闭 Javascript 的浏览器
    • 不确定,但搜索引擎可能会遇到这种技术的问题

    要发送重定向,最好使用response.sendRedirect(...)。这是一个 HTTP 重定向(状态码 3xx),它不需要任何 Javascript,并且肯定适用于所有浏览器。

    【讨论】:

      【解决方案2】:

      这不是一种专业的编码方式。

      Servlet 中,就像在 JSP 中一样,您可以将您要放置的任何内容(作为要在响应中发送的字符串)放在最终的 HTML 页面中,该页面将由 ServletJSP。 当然,对于 servlet,它只是一个字符串。

      您可以在此字符串中放置 HTML、Javascript 或您想要的任何内容,它可以在导航器中使用,但在 Java 级别它只是一个字符串。

      尽管我们有办法做到这一点,但在大多数情况下尽量避免。

      如果我们这样做会出现客户端调试等问题,并且对于新开发人员来说,要准确查看您在哪里添加此脚本(如果他们不知道我们可以在servlet 中包含脚本作为字符串)将变得更加复杂

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 2010-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-17
        • 1970-01-01
        相关资源
        最近更新 更多