3.1 概念 运行在服务器端的小程序 Servlet 就是一个接口 定义JAVA类被浏览器访问(Tomact 识别)的规则 将来 我们需要自定义一个类 实现servlet 接口 重写方法 3.2 快速入门 1 创建一个JavaEE项目 2 定义一个实现Servlet 接口 3 实现接口中的抽象方法 4 配置Servlet 在web.xml 配置 配置文件: <servlet> <servlet-name>demo1</servlet-name> <!-- 可以随便起个名字-> <servlet-class>cn.qu.demo.ServletDemo</servlet-class><!-- 路径必须正确 包名 跟类名-> </servlet> <servlet-mapping> <!-- 映射-> <servlet-name>demo1</servlet-name> <!--虚拟路径-> <url-pattern>/aaa</url-pattern> </servlet-mapping>
package cn.lijun.web.servlet; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; @WebServlet("/mingming") public class Demo1Servlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("我是init我启动了"); } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("干事"); } @Override public String getServletInfo() { return null; } @Override public void destroy() { System.out.println("我被销毁"); } }
执行原理: 1.当服务器 接收到客服端浏览器请求后 会解析url地址 获得url路径 获得访问Servlet资源路径 2 查找web.xml文件 是否有对应的<url-pattern></url-pattern>标签内容 3 如果有 则找对应的<servlet-class>全类名 4 tomcat 会将这个类加载进内存 创建其对象 5 调用其方法 1.4生命周期 1 被创建 执行init方法 只执行一次 Servlet 什么时候被创建 第一次被访问的时候 servlet被创建 2 提供服务 执行service方法 执行多次 每次访问servlet时候都执行 3 被销毁 执行destroy方法 服务器被关闭的时候 servlet被销毁 1.5Servlet3.0注解配置 支持注解配置 可以不需要web.xml 1.6Servlet体系结构 Servlet ----接口 GenericServlet-----抽象类-------》重写service方法 HttpServlet 抽象类-------》 对HTTP进行了封装 简化操作 doGet() doPost() 1.7Servlet相关配置 Urlpartten:servlet访问的路径 1 一个servlet可以定义多个访问路径 @WebServlet({“/lijun”,“/demo”,“/de”}) 2 路径的规则 1 /XXXX 完全的路径匹配 2 /xxx/xxx 多层匹配 3 *.xxx 拓展名匹配
servlet 中几种错误 404:资源未找到 原因一:在请求地址中的Servlet的别名书写错误 原因二:虚拟项目名称拼写错误 500错误:内部服务器错误 在web.xml中校验servlet的全限定路径是否正确 在service方法体中存在逻辑错误 根据错误语法service方法体中的代码进行错误更改 405错误:强求方式不支持 请求方式和servlet、方法不匹配 尽量使用service方法 尽量不要在service方法中调用父类方法