【问题标题】:jsp:forward tag does not change the URL [duplicate]jsp:forward 标记不会更改 URL [重复]
【发布时间】:2011-04-26 04:55:25
【问题描述】:

这是 deleteProduct.jsp 页面代码。 问题只是 forward 标记 并且数据库操作运行良好。 我使用 forward 标签 转到 adminProducts.jsp 但结果不正确。 它显示 adminProducts.jsp 页面内容,但地址栏显示 deleteProduct.jsp 什么问题,我该如何解决?

<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<%@ page import="org.j2os.shine.jconnection.JDBC" %>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>delete product</title>
  </head>
  <body>
    <%
      String id = request.getParameter("id");
      out.print(id);
      JDBC mydb = new JDBC();
      mydb.login("com.mysql.jdbc.Driver","jdbc:mysql://localhost/rouyesh", "username", "password", true);
      mydb.executeSQLQuery("delete from products where id=" + id);
      mydb.commit();
    %>

    <jsp:forward page="adminProducts.jsp"></jsp:forward>
  </body>
</html>

【问题讨论】:

    标签: jsp


    【解决方案1】:

    转发没有问题。转发合同是根本不更改 URL 作为其服务器端操作。如果您希望地址栏显示正确的地址,请进行重定向。

    【讨论】:

    • 我应该使用什么标签?而不是向前传递我的参数?
    • 问题取决于你必须传递多少个参数。如果数字很小,那么您应该将它们作为 GET 参数传递。否则你将不得不向前传递,因为 GET 有你可以传递的参数限制。对于这种情况,要么使用一些服务器内存来存储请求之间的参数,要么可以尝试 URL 重写
    【解决方案2】:

    替换

    <jsp:forward page="adminProducts.jsp"></jsp:forward>
    

    response.sendRedirect("adminProducts.jsp");
    

    【讨论】:

      【解决方案3】:

      有时&lt;jsp:forward page="adminProducts.jsp"&gt;&lt;/jsp:forward&gt; 工作于&lt;jsp:forward page="adminProducts.jsp"/&gt;。单独维护结束标签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-15
        • 2013-08-14
        • 2014-01-23
        • 2012-08-20
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多