HtmlParseServletpublic 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 |
Methods Summary |
---|
public void | doGet(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 void | doPost(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 float | getLatestPrice(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;
|
|