Servlet接口应用(开发servlet三种方式)

第一种:实现Servlet接口

public class ServletDemo1 implements Servlet {

@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub

}

@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);
}

}

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接口");//浏览器打印

}

private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
doPost(request, response);//执行调用doPost,因为默认是doGet
}

@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}

@Override
public void destroy() {
// TODO Auto-generated method stub

}

}

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>

 

posted @ 2015-12-28 23:46  Dandy丶豪程  阅读(5603)  评论(0编辑  收藏  举报