JavaWeb

作者: 鱼落于天 | 来源:发表于2020-11-09 17:56 被阅读0次
Tomcat
  • 创建项目
    • webapps 目录下创建目录(简化部署 打包war格式压缩包)
    • server.xml Host标签下添加内容
      <Context docBase="项目路径" path="/虚拟目录"/>
    • conf/Catalina/localhost下,添加任意名称的xml, 内容: <Context docBase="项目路径" path="/虚拟目录"/> 这种方式是热加载,可以在不关闭Tomcat的情况下生效
  • 动态项目目录结构

根目录

WEB-INF

web.xml web核心配置文件
classes目录 字节码文件的目录
lib目录 依赖的jar包

JDBC连接池
Tomcat
  • 创建项目
    • webapps 目录下创建目录(简化部署 打包war格式压缩包)
    • server.xml Host标签下添加内容
      <Context docBase="项目路径" path="/虚拟目录"/>
    • conf/Catalina/localhost下,添加任意名称的xml, 内容: <Context docBase="项目路径" path="/虚拟目录"/> 这种方式是热加载,可以在不关闭Tomcat的情况下生效
  • 动态项目目录结构

根目录

WEB-INF

web.xml web核心配置文件
classes目录 字节码文件的目录
lib目录 依赖的jar包

Servlet
  • server applet 运行在服务器端的小程序, 位于 javax.servlet.*
  • 单例, 多个用户同时访问, 会产生线程安全问题, 所以避免创建成员变量
  • 简单的Servlet步骤
// 1. 创建项目
// 2. 定义类,实现javax.servlate.Servlet接口, 例如: Servlet
// 3. 配置web.xml
package com.it.web.servlet;
import javax.servlate.*;
// 有多个接口方法,这里只写一个
public class ServletDemo implements Servlet {
      @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("hello Servlet");
        }
}
// 文件web.xml web-app中添加
<!-- 配置Servlet -->
    <servlet>
        <servlet-name>服务名</servlet-name>
        <servlet-class>com.it.web.servlet.ServletDemo</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>服务名</servlet-name>
        <url-pattern>访问url</url-pattern>
    </servlet-mapping>
  • 使用注解 代替简单的web.xml
@WebServlet("/demo2")
public class ServletDemo implements Servlet {
      @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("demo2");
        }
}
  • urlPattern 路径设置

    • "/xxx"
    • @WebServlet({"/demo3", "/demo4"})
    • "/xx/*" 正则匹配 优先级最低
  • GenericServlet 将Servlet接口中的方法做了空实现,只抽象了 service() 方法

  • HttpServlet 实现了web访问各种形式,Get\Post\Update\Delete\Option\Put等

  • request 在请求范围内共享对象

    • request.setAttribute
    • request.getAttribute
    • request.removeAttribute
  • 转发路由

servletRequest.getRequestDispatcher("/demo3").forward(servletRequest, servletResponse);
  • ServletContext对象 代表整个web应用,可以和程序的容器进行通信
    • 功能 : 获取MINI类型: 文件数据类型, 格式 大类型/小类型 ,例如: text/html, bz/application/x-bzip
    • 功能 : 域对象 共享数据; 共享所有数据, 服务打开就会创建, 服务关闭才会销毁
    • 功能 : 获取文件的真实(服务器)路径
      • / 代码 web目录, 比如 /t.txt
      • 获取src下的目录 /WEB-INFO/classes/a.txt
网络
  • tcp
  • udp
  • http
  • request
    • 请求行: 请求方式 请求url 请求协议/版本
    • 请求头: 请求头名称: 请求值1, 请求值2..
    • 请求空行: 空行
    • 请求体: POST
  • response
    • 响应头: 协议/版本 响应状态码 状态码描述
    • 响应行
    • 响应空行
    • 响应体
POST /server/index.php?s=/api/item/info HTTP/1.1
Host: showdoc.it.lixiangoa.com
Connection: keep-alive
Content-Length: 37
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36

item_id=2&keyword=&default_page_id=94
spring mvc
xml解析
json解析

相关文章

网友评论

      本文标题:JavaWeb

      本文链接:https://www.haomeiwen.com/subject/ejcrbktx.html