【问题标题】:Recognizing what JSP called the Servlet认识 JSP 所称的 Servlet
【发布时间】:2012-01-03 06:41:50
【问题描述】:

我有两个可以访问 Servlet 的 JSP 页面。现在,我希望当 JSP 1 访问 Servlet 时,Servlet 会做某种工作(例如增加一个 int),而当 JSP 2 访问 Servlet 时,它会做一些其他类型的工作(例如减少一个 int) .

任何人都可以通过指定如何可能来帮助我吗?

【问题讨论】:

    标签: jsp jakarta-ee servlets


    【解决方案1】:

    你可以在同一个参数上传递不同的值。

    在 page1.jsp 中

    <jsp:forward page="/MyServelt">
       <jsp:param name="action" value="incr" /> 
    </jsp:forward/>
    

    在 page2.jsp 中

    <jsp:forward page="/MyServelt">
       <jsp:param name="action" value="decr" /> 
    </jsp:forward/>
    

    如果使用&lt;form&gt;标签,则添加&lt;input type="hidden"/&gt;

    <form method="post" action="/MyServlet">
      <input type="hidden" name="action" value="incr"/>
      .....
    </form>
    

    【讨论】:

    • 谢谢。我正在使用
      标签来调用 servlet。但是,它说 不能在其中使用。有什么程序可以解决吗?抱歉,我对 servlet 和 jsp 知之甚少。
    【解决方案2】:

    首先Servlet 不是页面

    其次,解决您的问题的方法是将请求中的参数从 jsp 页面传递给 servlet,这有助于识别从何处发出请求,并使用此参数决定您应该执行哪个操作,或者您也可以使用 @ 987654321@ 请求头或getRequestURI() 请求方法来获取它,但我从未使用过它所以不确定。

    【讨论】:

      【解决方案3】:

      对执行递增或递减操作的方法使用同步关键字。

      这更像是数据库事务中的隔离。其次要决定具体做什么,

      您可以使用请求参数,例如 - domain/myservlet?action=increment

      :)

      【讨论】:

        猜你喜欢
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多