如何在点击按钮的情况下为JSP页面中的变量赋值?
我的JSP页面中有一个“删除”按钮。当用户点击此按钮时,它必须将var(比如布尔标志或字符串)设置为某个值。我怎么能这样做?
<% boolean del=false; %>
<input type="button" name="deleteAnswer" value="delete" onClick= <Code to set del> />
<% if(del) { My Code } %>
答案 0 :(得分:1)
不幸的是,Web界面不能像那样工作。
首先渲染整个JSP并将其发送到浏览器。然后用户可以单击,然后您可以将结果发送到服务器并创建另一个页面。 在服务器上处理JSP时,用户无法与JSP交互。
另一种方法是使用JavaScript对点击做出反应。
答案 1 :(得分:0)
服务器机器有一个带有Java / JSP的Web服务器。客户端机器有一个用于HTML / CSS / JS的webbrowser。 Webbrowser发送HTTP请求并检索HTTP响应。 Web服务器检索HTTP请求并发送HTTP响应。 Java / JSP在Web服务器上运行并生成HTML / CSS / JS页面。服务器机器通过网络将HTML / CSS / JS页面发送到客户机。 Webbrowser检索HTML / CSS / JS并开始显示HTML,应用CSS并执行JS。在客户端机器上没有Java / JSP的方法。要在客户端操作期间执行Java / JSP,您只需将特定的Java / JSP代码附加到特定的HTTP请求。
首先,在JSP中只有一个这样的HTML表单:
<form action="delete" method="post">
<input type="submit" value="Delete">
</form>
在Servlet
中定义一个web.xml
来监听url-pattern
/delete
:
<servlet>
<servlet-name>delete</servlet-name>
<servlet-class>com.example.DeleteServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>delete</servlet-name>
<url-pattern>/delete</url-pattern>
</servlet-mapping>
创建一个com.example.DeleteServlet
,如下所示:
public class DeleteServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Your code here.
// Show JSP page.
request.getRequestDispatcher("page.jsp").forward(request, response);
}
}
基本上都是这样。要了解有关JSP / Servlet的更多信息,我可以推荐those tutorials。