.net网站源码下载,做网站必须原创吗,项目网络的关键路径,网站开发公司运营流程目录
HTTP协议
什么是HTTP协议
HTTP协议的特点
请求的HTTP协议格式
GET请求
POST请求
常用的请求头说明
哪些是GET请求#xff0c;哪些是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请求的区别
GET请求请求参数在请求行中没有请求体。POST请求请求参数在请求体中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标签 methodgeta标签link标签引入cssscript标签引入js文件img标签引入图片iframe引入html页面在浏览器地址栏中输入地址后敲回车
POST请求有哪些
form标签 methodpost
响应的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/POSTsetAttribute(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(responses content);
解决中文乱码问题
方案一 方案二同时设置服务器和客户端都使用UTF-8还设置了响应头只有在获取流对象之前设置才有效
response.setContextType(text/html;charsetUTF-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 方案二推荐