java day36——xml约束、Tomcat、Servlet

xml文本标记语言

html: 专注于页面展示
xml: 专注于文本内容记录 ,和 properties 文件格式 都被用于配置文件

  • 大小写敏感
  • 属性值不能省略
  • 属性值要加引号
  • 标签名可以自定义

xml约束

  • DTD约束 dtd文件
    使用步骤:详见xml文件
    添加位置:根标签之前
  • Schema约束 - 命名空间约束 xsd文件
    使用步骤:详见xml文件
    约束添加位置:根标签内部

Tomcat

使用

启动服务器:
1.直接双击bin/startup.bat
2.配置环境变量 bin, cmd中输入命令:startup
关闭服务器:
1.直接双击bin/shutdown.bat
2.配置环境变量 bin, cmd中输入命令:shutdown

地址:http://localhost:8080/

ip: 计算机在网络中的唯一标识
端口: 软件在计算机中的唯一标识

可能出现问题
1.缺少环境变量
解决:添加对应的环境变量
2.Caused by: java.net.BindException: Address already in use 地址被占用(端口被占用)
解决:1.查看哪个进程占用了8080端口,并强制杀死
2.更改tomcat服务器端口号
conf/server.xml
http协议默认端口号是80, 访问时可以省略

文件目录

在这里插入图片描述

javaweb

应用部署方式

  1. 直接将hello文件夹拷贝到 webapps 中,重启服务器
    访问资源: http://localhost:8080/虚拟目录/…/资源名
    例: http://localhost:8080/hello/index.html
    虚拟目录: hello文件夹的名字,就是应用的根目录
    卸载:删除hello文件夹,重启服务器

  2. 将hello文件打包成war文件,将hello.war文件复制到 webapps 中,服务器正在运行,会自动解压war文件
    虚拟目录:war文件名的名字
    卸载:删除hello.war文件

  3. 修改conf/server.xml文件,重启服务器

 <Context path="hi" docBase="/Users/bonnie/Desktop/hello" />
 path: 虚拟目录 http://localhost:8080/hi/index.html
 docBase: 应用的绝对路径
 卸载:将Context标签删除,重启服务器
  1. 在conf/Catalina/localhost/新增hello.xml
文件内容:<Context docBase="/Users/bonnie/Desktop/hello" />
虚拟目录:xml文件的名字
卸载:hello.xml文件删除

web应用和工程的关系(目录结构)

idea新建web工程
编译后:out/artifacts/web01_war_exploded -> web应用
在这里插入图片描述

Servlet

完成步骤

	  a.自定义类,实现 Servlet 接口
  	  b.着重实现 service 方法
  	      System.out.println("Hello Kitty service");
          response.getWriter().println(new Date());
      c.修改web.xml配置文件,注册servlet
          <servlet>
	        <servlet-name>Hello</servlet-name>
	        <servlet-class>com.zzxx.a_hello.HelloKitty</servlet-class>
	      </servlet>
	      <servlet-mapping>
	        <servlet-name>Hello</servlet-name>
	        <url-pattern>/hi</url-pattern>
	      </servlet-mapping>
	  d.启动服务器运行,访问这个Servlet资源
	  	  http://localhost:8080/web01_war_exploded/hi

在这里插入图片描述
在这里插入图片描述

生命周期

init: 创建对象后,初始化时执行
默认第一次发送请求时创建,而且只创建一次
设置服务器启动时创建

<load-on-startup>数字<load-on-startup>

service: 每次接收到请求时执行

destroy: 销毁之前执行
服务器正常关闭时销毁

ServletConfig:这个Servlet对应的配置信息

体系结构

 Servlet的体系结构:
    |- 抽象的实现类 GenericServlet
    	|- 抽象的子类 HttpServlet
    		 实现了service方法,将请求和响应转换后
    		 调用this.service() -> 判断请求方式,
    		 从而决定调用 doGet、doPost
  进化:继承 HttpServlet,重写doGet、doPost
   @WebServlet("/Demo02Servlet")取代servlet标签
   	使用前提:web应用版本在3.0及以上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值