如何在JSP中单击按钮时为变量(一个java变量)赋值?

时间:2010-03-11 06:27:10

标签: jsp

如何在点击按钮的情况下为JSP页面中的变量赋值?

我的JSP页面中有一个“删除”按钮。当用户点击此按钮时,它必须将var(比如布尔标志或字符串)设置为某个值。我怎么能这样做?

<% boolean del=false; %>
<input type="button" name="deleteAnswer" value="delete" onClick= <Code to set del> />
<% if(del) { My Code } %>

2 个答案:

答案 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并开始显示HT​​ML,应用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