当前位置: 首页 > news >正文

海珠区建设和水务局网站php 手机网站

海珠区建设和水务局网站,php 手机网站,广告宣传设计图,网站背景目录 HTTP协议 什么是HTTP协议 HTTP协议的特点 请求的HTTP协议格式 GET请求 POST请求 常用的请求头说明 哪些是GET请求,哪些是POST请求 响应的HTTP协议格式 常见的响应码说明 MIME类型说明 HttpServletRequest类 作用 常用方法 如何获取请求参数 po…

目录

HTTP协议

什么是HTTP协议

HTTP协议的特点

请求的HTTP协议格式

GET请求

POST请求

常用的请求头说明

哪些是GET请求,哪些是POST请求

响应的HTTP协议格式

常见的响应码说明

MIME类型说明

HttpServletRequest类

作用

常用方法

如何获取请求参数

post请求中文乱码问题

请求转发

base标签的作用

Web中的相对路径和绝对路径

Web中斜杠/的不同意义

HttpServletResponse类

作用

两个输出流的说明

如何向客户端回传字符串数据

请求重定向


HTTP协议

什么是HTTP协议

协议:指双方或多方相互约定好,大家都需要遵守的规则

HTTP(HyperText Transfer Protocol),超文本传输协议,规定了浏览器和服务器之间数据传输的规则

HTTP协议中的数据又叫报文

HTTP协议的特点

  • 基于TCP协议:面向连接,安全
  • 基于请求-响应模型的:一次请求对应一次响应
  • HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。 缺点:多次请求间不能共享数据。 优点:速度快

请求的HTTP协议格式

客户端给服务器发送数据叫请求,服务器给客户端回传数据叫响应

请求分为GET请求和POST请求两种

GET请求和POST请求的区别:

  1. GET请求请求参数在请求行中,没有请求体。POST请求请求参数在请求体中
  2. GET请求请求参数大小有限制,POST没有

GET请求

1.请求行

    (1)请求的方式:GET

    (2)请求的资源路径:[+?+请求参数]

    (3)请求的协议的版本号:HTTP/1.1

2.请求头

    由key:value组成,不同的键值对表示不同的含义

POST请求

1.请求行

    (1)请求的方式:POST

    (2)请求的资源路径:[+?+请求参数]

    (3)请求的协议的版本号:HTTP/1.1

2.请求头

    由key:value组成,不同的键值对表示不同的含义

请求头和请求体之间有空行

3.请求体:发送给服务器的数据

常用的请求头说明

Accept:客户端可以接收的数据类型

Accept-Language:客户端可以接收的语言类型

User-Agent:客户端浏览器的信息

Host:请求时的服务器ip和端口号

哪些是GET请求,哪些是POST请求

GET请求有哪些:

  • form标签 method=get
  • a标签
  • link标签引入css
  • script标签引入js文件
  • img标签引入图片
  • iframe引入html页面
  • 在浏览器地址栏中输入地址后敲回车

POST请求有哪些:

  • form标签 method=post

响应的HTTP协议格式

1.响应行

    (1)响应的协议和版本号:HTTP/1.1

    (2)响应状态码:200

    (3)响应状态描述符:OK

2.响应头

    由key:value组成,不同的键值对表示不同的含义

响应头和响应体之间有空行

3.响应体:回传给客户端的数据

常见的响应码说明

200:请求成功

302:请求重定向

404:请求服务器已经收到了,但数据不存在(请求地址错误)

500:服务器已经收到请求,但是服务器内部错误(代码错误)

MIME类型说明

MIME是HTTP协议中的数据类型

MIME类型的格式是“大类型/小类型”,并与某一种文件的扩展名相对应

常见的MIME类型:

HttpServletRequest类

作用

每次只要有请求进入tomcat服务器,tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中,然后传递到service方法(doGet和doPost)中给我们使用,我们可以通过HttpServletRequest对象获取到所有请求的信息

常用方法

  • getRequestURI():获取请求的资源路径
  • getRequestURL():获取请求的统一资源定位符(绝对路径)
  • getRemoteHost():获取客户端的ip地址
  • getHeader():获取请求头
  • getParameter():获取请求的参数
  • getParamterValues():获取请求的参数(多个值)
  • getMethod():获取请求的方式GET/POST
  • setAttribute(key,value):设置域数据
  • getAttribute(key):获取域数据
  • getRequestDispatcher():获取请求转发对象

启动输出为:

如何获取请求参数

post请求中文乱码问题

要在获取请求参数之前设置才有效

请求转发

请求转发是指服务器收到请求后,从一个资源跳转到另一个资源

请求转发的特点:

  • 浏览器地址栏没有变化
  • 它们是一次请求
  • 它们共享Request域中的数据
  • 可以转发到WEB-INF目录下
  • 不可以访问工程以外的资源

Servlet1类:

package com.qcby.servlet0724;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;public class Servlet1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求参数String username = request.getParameter("username");System.out.println("在Servlet1中查看参数:"+username);//盖章,并传递到Servlet2request.setAttribute("key1","柜台1的章");//问路:Servlet2怎么走/*** 请求转发必须要以斜杠开头*/RequestDispatcher requestDispatcher = request.getRequestDispatcher("/servlet2");//走向Servlet2requestDispatcher.forward(request,response);}}

Servlet2类:

package com.qcby.servlet0724;import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;public class Servlet2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求参数String username = request.getParameter("username");System.out.println("在Servlet2中查看参数:"+username);//查看柜台1是否盖章Object key1 = request.getAttribute("key1");System.out.println("柜台1是否有章:"+key1);//处理自己的业务System.out.println("Servlet2处理自己的业务");}}

启动:

base标签的作用

base标签可以设置当前页面中所有相对路径工作时,参照哪个路径来进行跳转

Web中的相对路径和绝对路径

相对路径:

.表示当前目录

..表示上一级目录

资源名:表示当前目录/资源名

绝对路径:

http://ip:port/工程路径/资源路径

Web中斜杠/的不同意义

在web中/斜杠是一种绝对路径

  • /斜杠如果被浏览器解析,得到的地址是:http://ip:port/
  • /斜杠如果被服务器解析,得到的地址是:http://ip:port/工程路径

特殊情况:

response.sendRedirect("/"):把斜杠发送给浏览器解析,得到http://ip:port/

HttpServletResponse类

作用

每次请求进来,tomcat服务器都会创建一个Response对象传递给Servlet程序去使用,HttpServletResponse表示所有响应的信息,如果需要设置返回给客户端的信息,都可以通过HttpServletResponse对象来进行设置

两个输出流的说明

  • 字节流:getOutputStream(),常用于下载(传递二进制数据)
  • 字符流:getWriter(),常用于回传字符串(常用)

两个流同时只能使用一个,使用了字节流,就不能再使用字符流,反之亦然,否则报错

如何向客户端回传字符串数据

PrintWriter writer = response.getWriter();
writer.write("response's content");

解决中文乱码问题:

方案一:

方案二:同时设置服务器和客户端都使用UTF-8,还设置了响应头,只有在获取流对象之前设置才有效

response.setContextType("text/html;charset=UTF-8");

请求重定向

请求重定向是指客户端给服务器发请求,然后服务器告诉客户端说我给你一些地址,你去新地址访问(因为之前的地址可能已废弃)

请求重定向的特点:

  • 浏览器地址栏会发生变化
  • 两次请求
  • 不共享Request域中的数据
  • 不能访问WEB-INF下的资源
  • 可以访问工程外的资源

方案一:

Response1:

package com.qcby.servlet0724;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 Response1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Response1");//设置响应状态码302,表示重定向resp.setStatus(302);//设置响应头,说明新的地址resp.setHeader("Location","http://localhost:8080/servlet0724/response2");}
}

Response2:

package com.qcby.servlet0724;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 Response2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("response2的结果");}
}

启动:访问http://localhost:8080/servlet0724/response1

方案二(推荐):

http://www.yayakq.cn/news/690348/

相关文章:

  • 网站建设与运营在线考试创新驱动发展战略内容
  • 兰州做网站咨询兰州做网站公司短网址还原工具
  • 网站开发加设计要多少钱做网站 什么语言好
  • 河南郑州网站建设哪家公司好甘肃省建设工程网上投标网站
  • 大连市城市建设档案馆网站天猫网站的建设
  • 网站上传用什么软件做视频教程重庆网站建设大概需要多少钱
  • 二手购物网站建设方案备案系统
  • 网站小图标怎么做软件工程月薪一般多少
  • 网站开发技术及开发环境高端电商设计公司
  • 怎样做宣传网站商城小程序
  • 2018做网站站长免费的项目管理软件
  • 良庆网站建设手工做衣服的网站
  • 代理网站地址深圳南头网站建设公司
  • 公司网站建设开发室内装修公司名字大全
  • 新房地产网站开发免费上外国网站的浏览器
  • 淄博网站制作服务推广wordpres做影视网站
  • 站长资源平台百度云加速
  • 南京企业免费建站太原网站制作公司哪家好
  • 做外贸外文网站怎么做好品牌网站建设磐石网络优等
  • 搜索引擎网站排名seo网站推广佛山
  • wordpress站内信网页小游戏下载
  • 柴沟堡做网站备案时的网站名称
  • 网站常用英文字体域名安全检测中心
  • 如何进行医药网站建设现在注册一个公司要多少钱
  • 汽贸做网站有用处吗株洲新区发布
  • 怎么制作企业网站做公司网站麻烦吗
  • 易营宝自助建站系统网站在线报名怎么做
  • 做神马网站快速排网站服务器地址在哪里看
  • 东南亚cod建站工具推荐几个做网页设计的网站
  • 浦东新区建设局网站格尔木有做网站的吗