繁体   English   中英

将值从jsp按钮单击传递到servlet

[英]Passing value from a jsp button click to a servlet

我对jsp和servlet有点陌生。 我需要在单击按钮时将值传递给servlet。 下面我提到了我的代码。 web.xml

<servlet>
<servlet-name>Login</servlet-name>
    <servlet-class>org.wso2.carbon.identity.application.authentication.endpoint.oauth2.OAuth2Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

test.jsp

       function ok() {
        $.ajax({
            url: "/login",
            data: 'test=' +'test',
            type: "GET",
            async: false,
            success: function (data) {

            }
        });
    }

以下是我在test.jsp中的html代码

<button id="ok" class="btn btn-primary btn-large" onclick="ok()">OK</button>

发球

public class OAuth2Login extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
        IOException {
       System.out.print("========do get fires===========");
    }

}

但是当我的test.jsp加载时,它会调用servlet的doget()。 但是在按钮上单击则不会。 我不需要在页面加载时调用servlet。 但是我需要在按钮上单击。 帮我解决这个问题。 对不起,很抱歉。 :)

在url属性中编写您的servlet映射网址:

function myFun() {
         var requestPath = "<%=request.getContextPath()%>";

        $.ajax({
            url: requestPath+"/login";
            data: {"data1":"value1", "data2": "value2"}
            type: "GET",
            async: false,
            success: function (data) {

            }
        });
}

我认为在web.xml /test.jsp中,这可以代替/test.jsp,这是错误的,您可以给您的servlet名称加上

<servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

然后单击在test.jsp中的按钮,就可以调用ajax函数并调用servlet的get方法

function ok() {
        $.ajax({
            url: "/login",
            data: 'test=' +'test',
            type: "GET",
            async: false,
            success: function (data) {

            }
        });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM