1.实现Servlet
接口,然后实现接口中的五个方法
//import
public class Hello implements Servlet{
//该函数用于初始化servlet,类似于类的构造函数,该函数只会被调用一次
public void init(ServletConfig parm1) throws ServletException {
System.out.println("init it!");
}
public ServletConfig getServletConfig() {
// TODO: Add your code here
return null;
}
//这个函数用于处理业务逻辑
//当用户每访问servlet时,都会调用
//req:用于获得客户端(浏览器)信息
//res:用于向客户端(浏览器)返回信息
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
//从res中得到PrintWriter
System.out.println("Service it");
PrintWriter pw = res.getWriter();
pw.println("Hello world!");
}
public String getServletInfo() {
return "";
}
//销毁,释放内存,三种方式会触发destroy
//1. reload该servlet(webApps) 2. 关闭tomcat 3.关机
public void destroy() {
System.out.println("destroy it!");
}
}
2.继承
GenericServlet
,需要
实现service
方法
public class Helloservlet extends GenericServlet{
//重写一个方法service即可
public void service(ServletRequest req, ServletResponse res){
//返回Hello world, generic
try{
PrintWriter pw = res.getWriter();
pw.println("Hello generic");
}
catch(Exception e){
e.printStackTrace();
}
}
}
3.继承
HttpServlet
,重写
doGet
和
doPost及其他需要用的方法
public class HelloServlet extends HttpServlet{
//处理get请求
public void doGet(HttpServletRequest req, HttpServletResponse res){
//业务逻辑
try{
PrintWriter pw = res.getWriter();
pw.println("hello, Http");
}
catch (Exception e){
e.printStackTrace();
}
}
public void doPost(HttpServletRequest req, HttpServletResponse res){
this.doGet(req,res);
}
}
关于web.xml文件配置:以上三种都需要
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
//第一种方式需要加入的部分
<servlet>
<servlet-name>hello</servlet-name><!--此名为任意,在浏览器访问时所需输入的名称,同下文servlet-name相同-->
<servlet-class>com.first.Hello</servlet-class><!--包名加类名-->
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>