Javaweb基础

Javaweb基础

web简介

代码 服务器端 客户端
Application代码
java代码 web服务器 h ttp: //IP:Tomcat端口号/应用名/servlet的访问路径
servlet/controller Tomcat
service层代码
dao层代码

Application代码

java代码

servlet/controller

service层代码

dao层代码

Java Web的三大组件:

(1) Servlet

(2) Filter(过滤器)

(3) Listener(监听器)

Servlet

要求

  • implements(实现) Servlet接口
  • 或者extends(继承) HttpServlet类,
  • 符合Servlet规范
  • 要放在符合Servlet规范的web服务器中运行以后才能访问

Servlet.class中5个抽象方法

  • init(ServletConfig) : void
  • getServletConfig() : ServletConfig
  • service(ServletRequest, ServletResponse): void
  • getServletInfo(): String
  • destroy(): void

tomcat

Tomcat目录结构

  • bin目录
    • 存放所有可执行文件或批处理文件
    • 如启动关闭tomcat shelll脚本文件
  • conf目录
    • 存放tomcat的配置文件,最主要的是server.xml
    • 修改端口: conf /server.xml ➡< Connector port = "8080" />
  • logs
    • tomcat运行时产生的日志文件
  • webapps目录
    • web应用所应存放的目录

web项目的目录结构

项目名

src 🍪存放java代码

WebRoot

WEB-INF

classes 🍪存放class文件

lib 🍪存放项目依赖的Jar包

web.xml 🍪配置Servlet

静态公共资源🍪css文件、js文件、img文件

  • web.xml
    • JavaWeb工程的核心配置文件
    • 用于配置JavaWeb的三大组件: Servlet Filter Listener

HTTP协议

HTTP: Hyper Text Transfer Protocal 超文本传输协议

  • 无状态的协议
  • HTTP协议的底层是TCP/IP协议
  • JavaWeb项目客户端(浏览器)和服务器(如tomcat)端通信的协议

http请求

  • HTTP请求有7种方式(不区分大小写):

POST(工作中用的最多) 、GET

HEAD、OPTIONS、DELETE、TRACE、PUT

  • GET请求方式

    http : // localhost : 8080 / javaweb / hello ? username=xxx & sex=1
    
    • key = value 🍪键值对

      参数名 = 参数值

    • ? 后面是参数列表

      • 每个参数之间用 & 分割
      • 每个参数用 参数名 = 参数值 表示
  • HTTP请求结构

    • 请求头Request Headers
    • 响应头ResponseHeaders

常见HTTP状态码

404 Not Found

  • 请求资源未找到
  • 使用重定向或直接访问WEB-INF下面的资源
http://IP:tomcat端口号/应用名/url-pattern

端口号后面的应用名和URL-pattern地址不正确就会返回404错误

500 服务器内部错误

代码报错,捕获异常

405 请求方式不对

比如:表单提交的方式是post 但是servlet的中方法doGet 就会报: 405

403 请求禁止

请求权限问题

401 未授权

Unauthorized

400 Bad Request

服务器端返回到客户端的状态码400, 客户端显示的就是400

200 Query OK

正常返回

302 重定向状态码

Servlet的运行过程

HttpServletRequest中的重要方法

HttpServletResponse中的重要方法

请求参数传递的方式(请求类型)

传递请求参数的方式:GET和POST(请求方式不区分大小写)

GET

  • GET请求传参的方式: 浏览器发送HTTP请求的7种方式之一
  • form的method属性默认值为get请求

POST

  • POST请求传参的方式: 浏览器发送HTTP请求的7种方式之一
  • 浏览器发送请求的2种方式(表单提交和Ajax)
  • 当form的method属性值为post的时候

GET和POST传递请求参数的区别

get请求

  • get
http://192.168.43.7:8080/java_web/hello?username=xxx&pwd=123  
  • post form data
http://192.168.43.7:8080/java_web/hello   
比较点 get post
url传递形式 参数显示在地址栏上 不显示
传递数量的大小 最大为1024字节 无限制
是否是表单的默认提交方式 不是
请求的默认编码 ISO-8859-1(不支持中文) 支持多种编码
请求参数封装在什么地方 QueryStringParameters Form Data
执行效率 相对低
  1. get请求在浏览器的地址栏中有显示,它的参数在url上 url?参数名=值&参数名=值&参数名=值(不安全)
  2. get请求方式提交的数据最大只能是1024字节
  3. get是表单的默认提交方式
  4. get请求默认编码ISO-8859-1(不支持中文) ---> ISO-8859-1--->UTF-8(中文乱码)
  5. 请求参数 --> query string parameters
  6. 执行效率高

post请求

  1. post请求参数不在浏览器地址栏的url上, post方式内容在请求体Response Body中(相对安全)
    因此可以用post方式对比较敏感的数据进行隐藏提交
  2. post提交的数据大小没有限制(因此post方式适用于大数据量传输,如文件上传)
  3. 不是表单的默认提交方式
  4. 执行效率相对于get请求来说低一点
  5. post请求 不是ISO-8859-1编码
  6. 请求参数 ---> form data
posted @ 2022-08-26 09:33  Hecto  阅读(21)  评论(0)    收藏  举报