servlet的创建使用
- 一,三种创建方式
- 1.1 实现servlet接口
- 1.2 继承GenericServlet
- 1.3 继承HttpServlet
- 二,servlet使用
- 2.1 web.xml文件的配置
- 2.1.1 创建xml文件
- 2.1.2 手写web.xml文件
- 2.2 在8080端口下访问
- 2.2.1 servlet的生命周期
servlet是服务器小程序。是个Java类,用来向客户端输出数据。
环境:[idea: myeclipse2014, server: tomcat8.5.5]
一,三种创建方式
1.1 实现servlet接口
package servlet;import java.io.IOException;import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;// 实现Servlet接口
public class MyServlet1 implements Servlet {public MyServlet1() {System.out.println("myservlet1出生啦");}public void destroy() {System.out.println("servlet销毁");}public ServletConfig getServletConfig() {return null;}public String getServletInfo() {return null;}public void init(ServletConfig cfg) throws ServletException {System.out.println("初始化了servlet, 配置信息:" + cfg);}public void service(ServletRequest request, ServletResponse response)throws ServletException, IOException {System.out.println("我可以服务");}
}
1.2 继承GenericServlet
package servlet;import java.io.IOException;import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class MyServlet2 extends GenericServlet {private static final long serialVersionUID = 5936931940945509793L;public void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {System.out.println("servlet2服务开始了");}}
1.3 继承HttpServlet
package servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyServlet3 extends HttpServlet {private static final long serialVersionUID = -3898454989640734357L;// get提交 如a标签 地址栏看得见的如 csdn.net/md?articleId=106303944protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("get");doPost(req, resp);}// post提交 表单post的提交protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("post");}
}
ps, 一般继承自HttpServlet,可重写doGet doPost 或者doService, 懒人可写doService 它是万能滴!
二,servlet使用
2.1 web.xml文件的配置
2.1.1 创建xml文件
点击项目右击
之后就会出现web.xml
内容:这下面的东西在地址栏,输入项目名回车,默认访问下面的页面
比如: http://127.0.0.1:8080/Jsp05/
2.1.2 手写web.xml文件
- 一个servlet对应一个类,和映射!
- xml文件改变后,要重新部署项目,否则报错404!
<!-- servlet的名称,类,以MyServlet1举例 --><servlet><servlet-name>MyServlet1</servlet-name> <!-- servlet 名--><servlet-class>servlet.MyServlet1</servlet-class> <!-- servlet 类 --></servlet><servlet-mapping> <!-- 映射 --><servlet-name>MyServlet1</servlet-name><url-pattern>/MyServlet1</url-pattern> <!-- 客户端访问路径 --></servlet-mapping>
2.2 在8080端口下访问
-
在这里就访问MyServlet1了, 看它的生命周期
-
在浏览器输入 http://127.0.0.1:8080/Jsp05/MyServlet1,下面是控制台打印
myservlet1出生啦
初始化了servlet, 配置信息:org.apache.catalina.core.StandardWrapperFacade@16850ac6
我可以服务
-
再次访问,刷新enter键
-
又执行了一次service方法!
-
当我关闭服务器!servlet销毁!
2.2.1 servlet的生命周期
出生 -> 初始化 -> (多次)服务(客户端可访问) -> 销毁
默认访问优先级,代码执行的优先级
service > get > post