2012-03-20 1 views
0

Это мой jsp .. и я использую javascript-функцию и ajax-call для вызова сервлета (ReadprojectInfo).Звонок сервлета от Ajax

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<script type="text/javascript"> 
function displayProject() 
{ 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

    xmlhttp.open("GET","ReadProjectsInfo",true); 
    xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
    xmlhttp.onreadystatechange= function() 
    { 
     if (xmlhttp.readyState==4) 
     { 
     if (xmlhttp.status == 200) 
     { 
     var time = xmlhttp.responseText; 
     //alert(time); 
     document.getElementById("center").innerHTML=xmlhttp.responseText; 
     } 
     } 
    } 
    xmlhttp.send(); 

//document.getElementById("center").innerHTML=Date(); 
} 

</script> 


<link rel="stylesheet" type="text/css" href="css/start.css" /> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Learning CSS</title> 
</head> 
    <body> 
    <div id ="headerLink" class="HeaderLink" > 
     <button id="adminLink" class="AdminLink" href='DNE.jsp'>Home</button></div> 
     <button id="projectButton" class="ProjectButton" onclick="displayProject()" >Projects</button> 
    </div> 

     <div id="center" class ="Center"><p>Click Project</p></div> 
    </body> 
</html> 

Servlet код как follows--

package excelExchange; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javaFiles.Dog; 
import javaFiles.Person; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class ReadProjectsInfo { 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException 
    { 
    doGet(request, response); 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{ 
     //String var1= request.getParameter("var"); 

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     out.write("Hello from servlet !!"); 
     out.println("Hello"); 

    } 

} 

Моя web.xml выглядеть ---

<servlet> 
    <servlet-name>projectInfo</servlet-name> 
    <servlet-class>excelExchange.ReadProjectsInfo</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>projectInfo</servlet-name> 
    <url-pattern>/ReadProjectsInfo</url-pattern> 
    </servlet-mapping> 

Ничто не happenig на clickiing на кнопку "Проект" !! Пожалуйста, помогите мне в этом.

+0

Очевидно, что относительный URL-адрес явно неправильный. Отладка/предупреждение 'xmlhttp.status', чтобы узнать больше. Если он возвращает '404', то URL-адрес определенно неверен. – BalusC

ответ

0

попробуйте закомментировать: xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); и: if (xmlhttp.status == 200) { ... биты и посмотреть, если он работает

+0

№ Все еще ничего не происходит !! –

+0

Вы пытались установить контрольную точку в своем сервлете, чтобы узнать, попадает ли он? – solvation

+0

Спасибо, сольватация за ответ. @solvation: извините, но что вы имеете в виду, установив точку останова в сервлете .. и как это сделать .. Не могли бы вы объяснить это. –

0

Вы должны продлить HttpServlet в своем классе, как:

public class ReadProjectsInfo extend HttpServlet{ 
     ... 
} 

Я думаю, что вы мог удалять линию:

xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 

Он должен работать ...

0

дать полный URL-адрес класса сервлета, как показано ниже, и попробовать один раз. Это сработало для меня. xmlhttp.open("GET","http://localhost:8080/excelExchange/ReadProjectsInfo",true);