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