从jsp按钮传递值单击到servlet

时间:2015-04-22 06:18:54

标签: java javascript ajax jsp servlets

inin我对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。但我需要点击按钮。帮我解决这个问题。抱歉无知。 :)

2 个答案:

答案 0 :(得分:0)

将您的servlet映射网址写入url属性:

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

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

            }
        });
}

答案 1 :(得分:0)

我认为在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) {

            }
        });
    }