FileDocCategorySizeDatePackage
HtmlParseServlet.javaAPI DocExample5977Mon Feb 23 20:39:22 GMT 2004com.jspservletcookbook

HtmlParseServlet

public class HtmlParseServlet extends HttpServlet

Fields Summary
private static final String
BASE_URL
private ParserDelegator
htmlParser
private MyParserCallback
callback
private String
htmlText
private boolean
lastTradeFlag
private boolean
boldFlag
private float
stockVal
Constructors Summary
Methods Summary
public voiddoGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)

    
       
       
    
	//set the MIME type of the response, "text/html"
    response.setContentType("text/html");
	
	//use a PrintWriter send text data to the client who has requested the servlet
    java.io.PrintWriter out = response.getWriter();
	
	//Begin assembling the HTML content
    out.println("<html><head>");
    
    out.println("<title>Stock Price Fetcher</title></head><body>");
    out.println("<h2>Please submit a new valid stock symbol</h2>");
   
   //make sure method="post" so that the servlet service method
   //calls doPost in the response to this form submit
    out.println(
        "<form method=\"post\" action =\"" + request.getContextPath() +
            "/stockservlet\" >");

    out.println("<table border=\"0\"><tr><td valign=\"top\">");
    out.println("Stock symbol: </td>  <td valign=\"top\">");
    out.println("<input type=\"text\" name=\"symbol\" size=\"10\">");
    out.println("</td></tr><tr><td valign=\"top\">");

    out.println("<input type=\"submit\" value=\"Submit Info\"></td></tr>");
    out.println("</table></form>");
    out.println("</body></html>");
	
     
public voiddoPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)

	   
	
	String symbol;//this will hold the stock symbol
	float price;
	
	symbol = request.getParameter("symbol");
	
	boolean isValid = (symbol == null || symbol.length() < 1) ? false : true;

	//set the MIME type of the response, "text/html"
    response.setContentType("text/html");
	
    //use a PrintWriter send text data to the client who has requested the servlet
    java.io.PrintWriter out = response.getWriter();
	
	//Begin assembling the HTML content
    out.println("<html><head>");
    out.println("<title>Latest stock value</title></head><body>");
	
	if (! isValid){
	    out.println("<h2>Sorry, the stock symbol parameter was either empty or null</h2>");
	} else {
	
	    out.println("<h2>Here is the latest value of "+ symbol +"</h2>");
	    
		price = getLatestPrice(symbol);
		//price < 1 ? "The symbol is probably invalid." :
	    out.println( (price == 0 ? "The symbol is probably invalid." : ""+price) );
		
		
	}
	
		
	out.println("</body></html>");
	
	
	
private floatgetLatestPrice(java.lang.String symbol)


	    BufferedReader webPageStream = null;
        URL stockSite = new URL(BASE_URL + symbol);
       System.out.println(BASE_URL + symbol);
        webPageStream = new BufferedReader(new InputStreamReader(stockSite.
           openStream()));
	   
        htmlParser = new ParserDelegator();
	   
        callback = new MyParserCallback();
	   
	    synchronized(htmlParser){//the code is designed to make calling parse() thread-safe
		
            htmlParser.parse(webPageStream,callback,true);
		}

       return stockVal;