第一種:實現Servlet接口html
public class ServletDemo1 implements Servlet {java
@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
}web
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}瀏覽器
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
HttpServletRequest request=(HttpServletRequest) req; //類型轉換
HttpServletResponse response=(HttpServletResponse) res;
//獲取請求的類型
String type=request.getMethod();
//判斷類型GET/POST
if("GET".equals(type)){
this.doGet(request,response);
}else{
this.doPost(request,response);
}
}app
private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=utf-8");//設置response 字符編碼
PrintWriter writer = response.getWriter();//獲得打印流對象
writer.print("實現Servlet類的方式1,實現Servlet接口");//瀏覽器打印
}ide
private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
doPost(request, response);//執行調用doPost,由於默認是doGet
}this
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}編碼
@Override
public void destroy() {
// TODO Auto-generated method stub
}url
}spa
XML配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ServletDemos</servlet-name>
<servlet-class>cn.itcast.servlet.demo.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemos</servlet-name>
<url-pattern>/servletdemo1</url-pattern>
</servlet-mapping>
</web-app>
第二種:繼承抽象類形式 GenericServlet
//經過繼承GenericServlet類實現 Servlet開發
public class ServletDemo2 extends GenericServlet {
//必須實現GenericServlet方法
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
response.getWriter().write("hello GenericServlet");
//直接往瀏覽器輸出
}
}
XML配置
<servlet>
<servlet-name>ServletDemo2</servlet-name>
<servlet-class>cn.itcast.servlet.demo.ServletDemo2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo2</servlet-name>
<url-pattern>/servletdemo2</url-pattern>
</servlet-mapping>
第三種:繼承抽象類 HttpServlet (推薦)
//經過繼承HttpServlet 開發Servlet
//最經常使用的
public class ServletDemo3 extends HttpServlet {
//重寫方法
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
//重寫方法
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");//設置編碼
PrintWriter pw=response.getWriter();
pw.write("第三種繼承HttpServlet(推薦)");//輸出
}
}
XML配置
<servlet> <servlet-name>ServletDemo3</servlet-name> <servlet-class>cn.itcast.servlet.demo.ServletDemo3</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo3</servlet-name> <url-pattern>/servletdemo3</url-pattern> </servlet-mapping>