package app01a;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
/**
* 如何訪問:
* http://localhost:端口號(使用tomcat沒有修改過的是8080)/項目名/下面WebServlet中的urlPatterns
* 如果使用的是web.xml配置文件,那么訪問路徑就變為:
* http://localhost:端口號(使用tomcat沒有修改過的是8080)/項目名/web.xml中該servlet對應的url-pattern
* @author Administrator
*
*/
// 暫時認為servletConfig的內容就是WebServlet中的內容
@WebServlet(name = "MyServlet", urlPatterns = { "/my" })
public class MyServlet implements Servlet{
private transient ServletConfig servletConfig;
/**
* 銷毀servlet時,servlet容器就會調用這個方法
*/
@Override
public void destroy() {
// TODO Auto-generated method stub
}
/**
* 這個方法會返回有servlet傳給init方法的ServletConfig
*/
@Override
public ServletConfig getServletConfig() {
return servletConfig;
}
/**
* 這個方法會返回Servlet的描述
*/
@Override
public String getServletInfo() {
return "My Servlet";
}
/**
* 第一次請求時調用,在后續請求中不會再調用
*/
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
/**
* 每當請求servlet時,就會調用這個方法,第一次請求時調用init方法和service方法,后續的請求只調用service方法
*/
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
// 設置響應內容類型
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.print("<html><head></head>" + "<body>Hello from " + servletName + "<br/>" + servletConfig + "</body></html>");
}
}