5.Servlet
创始人
2024-04-07 07:16:58

一、Servlet快速入门

 

        1.创建web项目,导入Servlet依赖坐标(scope范围为provided因为上传后tomcat也有这个,可能会冲突)pom.xml

 javax.servletjavax.servlet-api3.1.0provided

        2.创建:定义一个类,实现Servlet接口,并重写接口中所有方法,并在service方法中输入一句话(在java文件下创建com.itheima.web.ServletDemo1)

        3.配置:在类上面使用@WebServlet注解配置该Servlet的访问路径  (只演示了service方法)

package com.itheima.servlet;import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;@WebServlet("/demo1")
public class ServletDemo1 implements Servlet {@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("servlet hello world~");}@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

        4.右键:Run Maven/tomcat7:run运行项目,访问路径:http://localhost:8080/web-demo/demo1

 二、Servlet的执行流程

        1.Servlet由谁创建?Servlet方法由谁调用?

         答:Servlet由web服务器创建,Servlet方法由web服务器调用。

        2.服务器怎么知道Servlet中一定有servlet方法》

        答:因为我们自定义的Servlet,必须实现Servlet接口并复写其方法,而Servlet接口中有service方法

三、Servlet生命周期

@WebServlet(urlPatterns="/demo", loadOnStartup = 1) 负整数:第一次被访问时创建Servlet对象。0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高

        1.加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象

        2.初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次。

        3.请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。

        4.服务终止:当容器需要释放内存或者容器关闭时调用destory()方法完成资源的释放,该实例会被垃圾回收。

方法:getServletInfo返回提示信息,作者没什么用一般返回null或者空字符串

方法:getServiceconfig()方法暂时用不到,后面用到了说,就是要用config

package com.itheima.servlet;import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;@WebServlet(urlPatterns = "/demo2",loadOnStartup = 1)
public class ServletDemo2 implements Servlet {/*初始化方法* 1. 调用时机:默认情况下,Servlet被第一次访问,调用* 2. 调用次数:1次* */@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("哈哈哈");}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("hello world");}@Overridepublic String getServletInfo() {return null;}//    销毁方法:内存释放,被调用一次@Overridepublic void destroy() {}
}

四、Servlet体系结构

package com.itheima.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/demo3")
public class ServletDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("get....");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("post...");}
}

五、Servlet urlPattern配置

        1.Servlet 要想被访问,必须配置其访问路径(urlPattern)

        2.一个Servlet,可以配置多个 urlPattern

        @WebServlet(urlPattern = {"/demo1","/demo2"})

        3.urlPattern 配置规则

        (1)精准匹配  (2)目录匹配    (3)扩展名匹配        (4)任意匹配

package com.itheima.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** urlPattern:一个Servlet可以配置多个访问路径*/@WebServlet(urlPatterns = {"/demo3","/demo4"})
public class ServletDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo3 get...");}
}

六、XML配置方式编写 Servlet

        1.Servlet从3.0之后开始支持注解配置,3.0版本之前只支持xml配置文件的配置方式    了解

步骤:

        (1)编写Servlet类

        (2)在web.xml中配置该Servlet

ServletDemo4.java

package com.itheima.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class ServletDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("demo4 .. get");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {}
}

web.xml

Archetype Created Web Applicationdemo4com.itheima.servlet.ServletDemo4
demo4/demo4

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...