【发布时间】:2012-01-03 06:41:50
【问题描述】:
我有两个可以访问 Servlet 的 JSP 页面。现在,我希望当 JSP 1 访问 Servlet 时,Servlet 会做某种工作(例如增加一个 int),而当 JSP 2 访问 Servlet 时,它会做一些其他类型的工作(例如减少一个 int) .
任何人都可以通过指定如何可能来帮助我吗?
【问题讨论】:
标签: jsp jakarta-ee servlets
我有两个可以访问 Servlet 的 JSP 页面。现在,我希望当 JSP 1 访问 Servlet 时,Servlet 会做某种工作(例如增加一个 int),而当 JSP 2 访问 Servlet 时,它会做一些其他类型的工作(例如减少一个 int) .
任何人都可以通过指定如何可能来帮助我吗?
【问题讨论】:
标签: jsp jakarta-ee servlets
你可以在同一个参数上传递不同的值。
在 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/>
如果使用<form>标签,则添加<input type="hidden"/>,
<form method="post" action="/MyServlet">
<input type="hidden" name="action" value="incr"/>
.....
</form>
【讨论】:
首先Servlet 不是页面。
其次,解决您的问题的方法是将请求中的参数从 jsp 页面传递给 servlet,这有助于识别从何处发出请求,并使用此参数决定您应该执行哪个操作,或者您也可以使用 @ 987654321@ 请求头或getRequestURI() 请求方法来获取它,但我从未使用过它所以不确定。
【讨论】:
对执行递增或递减操作的方法使用同步关键字。
这更像是数据库事务中的隔离。其次要决定具体做什么,
您可以使用请求参数,例如 - domain/myservlet?action=increment
:)
【讨论】: