0

This is my HTML File:

<html>
<head>
<script type="text/javascript">
function validateCatalogId(){

var req=init();

  function init(){

if (window.XMLHttpRequest) {
           return new XMLHttpRequest();
       } else if (window.ActiveXObject) {
           
           return new ActiveXObject("Microsoft.XMLHTTP");
       }

}
var catalogId=document.getElementById("catalogId");
req.open("POST", "validateForm", true);
req.onreadystatechange=processRequest;
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send("catalogId="+ encodeURIComponent(catalogId.value));

function processRequest(){

if(req.readyState==4){
   if(req.status==200){
    
      processResponse();

    }
  }
}

function processResponse(){

var xmlMessage=req.responseXML;

 }
}  

</script>

</head>
<body>
<h1>Form for Catalog Entry</h1>
<form name="validationForm" action="validateForm" method="post">

<div id="catalogId" name="catalogId"> </div>
<table>
<tr><td>Journal:</td><td><input    type="text"
            size="20"  
              id="journal"
            name="journal"></td>
</tr>

<tr><td>Publisher:</td><td><input    type="text"
            size="20"  
              id="publisher"
            name="publisher"></td>
</tr>
<tr><td><input    type="button" onclick="validateCatalogId();"
            value="Create Catalog"  
              id="submitForm"
            name="submitForm"></td>
</tr>
</table>

</form>

</body>
</html>

And this is my servlet:

import java.io.*;
import java.sql.*;
import javax.naming.InitialContext;
import javax.servlet.*;
import javax.servlet.http.*;

public class FormServlet extends HttpServlet {

			 private String catalogId =null;
			 private String journal=null;
			 private String publisher= null;

			 public void setCatalogId(String catalogId)
			{
				 this.catalogId= catalogId;
			}
			 public String getCatalogId()
			{
				return catalogId;
			}

			 public void setJournal(String journal)
			{
				 this.journal= journal;
			}

			 public String getJournal()
			{
				return journal;
			}

			 public void setPublisher(String publisher)
			{
				 this.publisher= publisher;
			}
		    public String getPublisher()
			{
				return publisher;
			}
			

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

			// Obtain value of Catalog Id field to ve validated.
			String catalogId = request.getParameter("catalogId");
			String journal = request.getParameter("journal");
			String publisher = request.getParameter("publisher");

			// set headers before accessing the Writer
			response.setContentType("text/xml");
			response.setHeader("Cache-Control", "no-cache");

			PrintWriter out = response.getWriter();


			if(request.getParameter("catalogId") != null) 
			{
				setCatalogId(request.getParameter("catalogId"));
			}
            else {
                     setCatalogId(" ");
            }

			if(request.getParameter("journal") != null) 
			{
				setJournal(request.getParameter("journal"));
			}
             else {
                     setJournal(" ");
             }
			
			if(request.getParameter("publisher") != null) {
				setPublisher(request.getParameter("publisher"));
			}
            else {
                   setPublisher(" ");
             }
			
			// then write the response
			// If result set is empty set valid element to true
		  
		   response.getWriter().write("<catalog>" + "<catalogId>+getCatalogId()+</catalogId>" + "<journal>+getJournal()+</journal>" + "<publisher>+getPublisher()+</publisher>" + "</catalog>");
		}
}

Without getter and setter methods the code is working fine..Can anyone find and solve the issue?

Expecting your Reply
Dave.

3
Contributors
3
Replies
4
Views
9 Years
Discussion Span
Last Post by dave_nithis
0

i am not familiar with java servlets, but i doubt in following line:

req.send("catalogId="+ encodeURIComponent(catalogId.value));

i think it should be like this

req.send("catalogId="+ encodeURIComponent(catalogId.innerHTML));

please let me know if it works or not..:)

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.