Source Code : Html Parse Servlet
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
Html Parse Servlet
import java.io.IOException;
import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.MalformedURLException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.swing.text.html.HTMLEditorKit.ParserCallback;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.parser.ParserDelegator;
public class HtmlParseServlet extends HttpServlet {
private static final String BASE_URL = "http://finance.yahoo.com/q?d=t&s=";
private ParserDelegator htmlParser = null;
private MyParserCallback callback = null;
private String htmlText = "";
private boolean lastTradeFlag = false;
private boolean boldFlag = false;
private float stockVal = 0f;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
//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>");
} //end doGet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException {
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>");
}// doPost
private float getLatestPrice(String symbol) throws IOException,
MalformedURLException {
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;
}//getLatestPrice
class MyParserCallback extends ParserCallback {
public MyParserCallback() {
if (stockVal != 0)
stockVal = 0f;
}
public void handleStartTag(javax.swing.text.html.HTML.Tag t,
MutableAttributeSet a, int pos) {
if (lastTradeFlag && (t == javax.swing.text.html.HTML.Tag.B)) {
boldFlag = true;
}
}//handleStartTag
public void handleText(char[] data, int pos) {
htmlText = new String(data);
if (htmlText.indexOf("No such ticker symbol.") != -1) {
throw new IllegalStateException(
"Invalid ticker symbol in handleText() method.");
} else if (htmlText.equals("Last Trade:")) {
lastTradeFlag = true;
} else if (boldFlag) {
try {
stockVal = new Float(htmlText).floatValue();
} catch (NumberFormatException ne) {
try {
// tease out any commas in the number using NumberFormat
java.text.NumberFormat nf = java.text.NumberFormat
.getInstance();
Double f = (Double) nf.parse(htmlText);
stockVal = (float) f.doubleValue();
} catch (java.text.ParseException pe) {
throw new IllegalStateException("The extracted text "
+ htmlText + " cannot be parsed as a number!");
}
}
lastTradeFlag = false;
boldFlag = false;
}//if
} //handleText
}//MyParserCallback
}//HttpServlet
Thank with us