Reputation: 39
i am trying to invoke Servlet using Ajax but the url in the $.ajax() is not redirecting me to the Servlet.
Can you all take a look and tell me why it isn't invoking servlet.
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="model.MongoDBJDBC" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/stylesheet.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"
type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {
packages : [ 'corechart' ]
});
</script>
<title>Servlets Selection Menu</title>
</head>
<body>
<div id="Servletssframe" style="width:200px; height:100px; margin-left:5px ;">
<form method="get" action="ReqFilter" id="myform">
<input type="radio" value="Servlets1" name="servlet" id="Servlets1"><label>Servlets 1</label><br>
<input type="radio" value="Servlets2" name="servlet" id="Servlets2"><label>Servlets 2</label><br>
<input type="radio" value="Servlets3" name="servlet" id="Servlets3"><label>Servlets 3</label><br>
<input type="radio" value="Servlets4" name="servlet" id="Servlets4"><label>Servlets 4</label><br>
<input type="radio" value="Servlets5" name="servlet" id="Servlets5"><label>Servlets 5</label><br>
<input type="button" value="submit" id="button">
</form>
</div>
</body>
<div id="container" style="width: 700px; height:700px; margin: 0 auto"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#button').click(function() {
var servlet=$('input[type=radio][name=servlet]:checked').attr('id');
//console.log(servlet);
$.ajax({
//url:'/ServletsUsingAjax/RequestFilter?servlet='+servlet,
url:'/ServletsUsingAjax3/RequestFilter?servlet='+servlet,
type:'get',
/* success:function()
{
alert(this.url);
},
*/
}
);
});
});
</script>
ReqFilter.java
package control;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//@WebServlet("/RequestFilter")
public class ReqFilter extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/html");
//response.setContentType("text/plain;charset=UTF-8");
RequestDispatcher dispatcher;
String value=request.getParameter("servlet").trim();
PrintWriter out=response.getWriter();
out.println("This"+value);
if(value.equals("Servlets1"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
out.println("console.log("+value+")");
out.println("$('#container').load('textfile.jsp')");
//out.println("google.charts.setOnLoadCallback(drawChart);");
out.println("</script>");
}
if(value.equals("Servlets2"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
//out.println("<div id='container2' style='width: 700px; height:700px; margin: 0 auto'></div>");
out.println("$('#container').load('textfile2.jsp')");
//out.println("google.charts.setOnLoadCallback(drawChart);");
out.println("</script>");
}
if(value.equals("Servlets3"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
out.println("Nothing to dipsplay");
out.println("</script>");
}
}
}
web.xml
<web-app>
<servlet>
<servlet-name>ServletsUsingAjax</servlet-name>
<servlet-class>control.ReqFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletsUsingAjax</servlet-name>
<url-pattern>/ReqFilter</url-pattern>
</servlet-mapping>
</web-app>
Upvotes: 0
Views: 627
Reputation: 2503
I am posting my working code as per above code.Try This.
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="java.util.List"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="css/stylesheet.css">
<script src="http://code.jquery.com/jquery-1.10.2.js"
type="text/javascript"></script>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript"
src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {
packages : [ 'corechart' ]
});
</script>
<title>Servlets Selection Menu</title>
</head>
<body>
<div id="Servletssframe"
style="width: 200px; height: 100px; margin-left: 5px;">
<form method="get" action="ReqFilter" id="myform">
<input type="radio" value="Servlets1" name="servlet" id="Servlets1"><label>Servlets
1</label><br> <input type="radio" value="Servlets2" name="servlet"
id="Servlets2"><label>Servlets 2</label><br> <input
type="radio" value="Servlets3" name="servlet" id="Servlets3"><label>Servlets
3</label><br> <input type="radio" value="Servlets4" name="servlet"
id="Servlets4"><label>Servlets 4</label><br> <input
type="radio" value="Servlets5" name="servlet" id="Servlets5"><label>Servlets
5</label><br> <input type="button" value="submit" id="button">
</form>
</div>
</body>
<div id="container" style="width: 700px; height: 700px; margin: 0 auto"></div>
<script type="text/javascript">
$(document)
.ready(
function() {
$('#button')
.click(
function() {
var servlet = $(
'input[type=radio][name=servlet]:checked')
.attr('id');
//console.log(servlet);
$
.ajax({
//url:'/ServletsUsingAjax/RequestFilter?servlet='+servlet,
url : 'ReqFilter?servlet='+ servlet,
type : 'get',
});
});
});
</script
>
ReqFilter.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//@WebServlet("/RequestFilter")
public class ReqFilter extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
System.out.println("HEREEEEEEEEEEEEEE");
response.setContentType("text/html");
//response.setContentType("text/plain;charset=UTF-8");
RequestDispatcher dispatcher;
String value=request.getParameter("servlet").trim();
PrintWriter out=response.getWriter();
out.println("This"+value);
if(value.equals("Servlets1"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
out.println("console.log("+value+")");
out.println("$('#container').load('textfile.jsp')");
//out.println("google.charts.setOnLoadCallback(drawChart);");
out.println("</script>");
}
if(value.equals("Servlets2"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
//out.println("<div id='container2' style='width: 700px; height:700px; margin: 0 auto'></div>");
out.println("$('#container').load('textfile2.jsp')");
//out.println("google.charts.setOnLoadCallback(drawChart);");
out.println("</script>");
}
if(value.equals("Servlets3"))
{
dispatcher=request.getRequestDispatcher("index.jsp");
dispatcher.include(request,response);
out.println("<script type='text/javascript'>");
out.println("Nothing to dipsplay");
out.println("</script>");
}
}
}
web.xml
<web-app>
<servlet>
<servlet-name>ServletsUsingAjax</servlet-name>
<servlet-class>ReqFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletsUsingAjax</servlet-name>
<url-pattern>/ReqFilter</url-pattern>
</servlet-mapping>
</web-app>
Upvotes: 0
Reputation: 69
<script type="text/javascript">
$(document).ready(function() {
$('#button').click(function() {
var servlet=$('input[type=radio][name=servlet]:checked').attr('id');
$.ajax({
url:'RequestFilter?servlet='+servlet,
type:'get',
success:function(data)
{
alert(data);
}
});
});
});
</script>
You can invoke servlet using above code, Thanks.
Upvotes: 1
Reputation: 2503
Just replace your ajax url with below code.
$.ajax({
url : 'ReqFilter?servlet='+ servlet,
type : 'get',
});
there is an issue with servlet mapping and and url pattern url passing in ajax.
Upvotes: 0