day24JavaWeb【tomcat_servlet】

1. 能够理解软件的架构

软件架构介绍

BS: Browser Server 浏览器-服务器模式,客户端使用浏览器访问服务器
CS: Client Server 客户端-服务器端。用户需要在本地电脑上安装客户端软件,来访问服务器

2. 能够理解WEB资源概念

web资源概念:

​ 浏览器能看到的数据都是web资源

资源分类有两种【静态资源和动态资源】

  1. 静态资源
    浏览器访问的资源是服务器上的物理文件(html,css,js,jpg,png)

  2. 动态资源

    浏览器访问的资源是服务器运行的代码(java代码)产生的数据

3. 能够理解WEB服务器

概念

web服务器就是运行在高性能计算机上的一个软件

作用

有能力将本地的资源(静态和动态)提供给外界,用户可以通过浏览器访问

4. 能够启动关闭Tomcat服务器

tomcat启动命令

startup.bat

tomcat服务器占用端口号

8080

5. tomcat目录结构介绍【理解】

在这里插入图片描述

6. 能够使用Servlet 2.5 配置文件方式和3.0注解开发

配置文件开发

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
           version="2.5">

    <!--目标:配置用户访问的url与DemoServlet映射关系,目的是访问url就找到DemoServlet处理请求与响应
        1.定义DemoServlet类全名
        2.定义url关联DemoServlet
            url定义格式:/资源名字,  /代表当前项目内,必须有
            浏览器访问:http://localhost:8080/资源目录/资源名字
            例子:http://localhost:8080/资源目录/demo
    -->
    <servlet>
        <servlet-name>DemoServlet</servlet-name>
        <servlet-class>com.itheima.servlet.DemoServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DemoServlet</servlet-name>
        <url-pattern>/demo</url-pattern>
    </servlet-mapping>

</web-app>

注解开发

/*
* 注解方式给servlet绑定url
* @WebServlet  注解
*   name = "Demo1Servlet", 功能与web.xml中的<servlet-name>一样,这个属性可有可无
*   urlPatterns = "/demo",功能与web.xml中的<url-pattern>一样,这个属性必须有
* */
@WebServlet(name = "Demo1Servlet",urlPatterns = "/demo")
public class Demo1Servlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //给浏览器输出一句“hello servlet3.0”
        //1.获取输出流可以输出数据给浏览器
        PrintWriter out = response.getWriter();
        //2.输出数据
        out.write("hello servlet3.0");
    }
}

Servlet3.0新特性

  1. 新增了一些注解,简化的 javaweb 代码开发,可以省略 web.xml 配置文件。

  2. 支持异步处理:多线程技术。

  3. 支持可插性特性:书写的代码编译后生成的 class 文件可以直接部署到其他项目自动加载执行。

    servlet2.5写的java代码编译后放到服务器上,需要重启服务器

    servlet3.0不需要,直接服务器识别

7.Servlet体系结构

在这里插入图片描述

8.Servlet映射路径1—配置多个路径

映射路径匹配方式

  1. 精确匹配

    上面讲的都是属于精确匹配,配置的url与用户访问的url要一模一样才可以访问到对应的servlet.
    
  2. 模糊匹配

    模糊匹配使用一个通配符“*”号,只有这一个通配符。
    通配符匹配使用只有2种方式:
    	1.前缀匹配,必须以“/”开头,以“*”结尾(*前面必须有/)
    	  例子,/abc/*,只要用户访问时/abc/开头都可以匹配到
    	2.后缀匹配,必须以“*”开头,以“.”扩展名方式结束使用
    	  例子,*.do,只要用户访问时以.do结尾都可以匹配到
    

    注意:/abc/*/abc既不属于前缀也不属于后缀,属于精确匹配

    1. 匹配模式一样的时候,匹配相似度越高优先级越高
    2. 精确匹配优先于模糊匹配
    3. 都为模糊匹配时,前缀匹配优先级高于后缀匹配
    面试题
    题目答案
    当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪一个“/abc/*”
    当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪一个“/abc”
    当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配“/abc/*”
    当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet“/*”
    当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配“/*”

9. 能够说出Servlet生命周期

生命周期

就是一个对象从创建到销毁的过程

/*
* 面试题:
*   1.请说出servlet生命周期相关方法
*       init方法
*       service方法
*       destroy方法
*   2.servlet对象什么时候创建的?
*       默认第一次调用时候创建,服务器创建的
*   3.servlet对象创建了几次?
*       只创建一次,全局唯一,单例模式对象,节省内存
*   4.servlet默认是在第一次访问时创建,能修改为启动时创建?
*       可以的,设置loadOnStartup的值为1~6的一个值代表服务器启动时创建
*       值越小代表越先创建
* */

10.Servlet运行原理

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值