1.Web流程:
1.1软件架构
c/s:客户端/服务器端
b/s:浏览器端/服务器端
1.2.资源分类:
静态资源:所有用户访问后,得到的结果都一样;静态资源可以直接被浏览器解析,如: html,css,JavaScript
动态资源:所有用户访问后,得到不一样的结果;动态资源被访问后,需要先转换 为静态资源,在返回给浏览器,如:servlet/jsp,php,asp....
1.3.网络通信三要素:
IP,端口 (0~65563),协议(tcp:安全协议,三次握手,速度稍慢; udp:不安全协议,速度稍快)
1.4.前端发送请求,根据路径信息,访问后台接口
通过ip地址找到服务器
通过端口号,找到web服务器程序
通过具体路径,找到执行的代码
2.Web服务器软件
2.1概念
服务器:安装了服务器软件的计算机
服务器软件:接受用户的信息,处理请求,作出响应
2.2 Tomcat控制台乱码
Windows默认编码是GBK,而Tomcat默认编码是UTF-8,需要将Tomcat的编码改为GBK
--> 在Tomcat目录的conf目录下找到logging.properties文件,将java.util.logging.ConsoleHandler.encoding改为GBK
2.3<!--Context 表示一个工程上下文
path: 表示工程访问路径:/abc
docBase:表示你的工程目录在哪里-->
<Context path="/abc" docBase="E:\book"/>
访问这个工程的路径如下;http://ip:port:/abc/ 就表示访问E:\book目录
3.Servlet
3.1Servlet是小服务程序或服务连接器
Servlet是javaEE规范之一。规范就是接口
Servlet是JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。
Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。
**3.2创建servlet
一般在实际项目开发中,都是使用继承HttpServlet类的方式去实现Servlet程序
(1)创建一个普通类继承HttpServlet
(2)重写HttpServlet中的方法
service()/doGet()/doPost()
init(ServletConfig config) 初始化
destroy() 销毁:结束服务器的时候会执行
(3)到web.xml中的配置Servlet程序的访问地址
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.tledu.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-partten>/hello</url-partten> // 斜杠表示:http:/localhost:8080/项目名/
</servlet-mapping>
3.3Servlet生命周期(从创建到死亡的执行过程)
(1)先执行构造方法,用于创建Servlet对象
(2) 执行init()方法做初始化操作
(3)执行service()/doGet()/dopost()方法处理真正的逻辑操作和数据交互
(4)执行destroy()方法进行资源释放和销毁
3.4ServletConfig类三大作用:(每个Servlet程序创建时都会创建一个对应的ServletConfig)
(1)可以获取Servlet程序的别名 servlet-name的值
(2)获取初始值参数init-param
(3)获取ServletContext对象
3.5ServletContext类(上下文对象,是一个接口,是一个域对象)
ServletContext四个作用:
(1)获取web.xml中配置的上下文参数 context-param
(2)获取当前的工作路径,格式: / 工程路径
(3)获取工程部署后在服务器硬盘上的绝对路径
(4)像Map一样存取数据
3.6HTTP协议(大家都要遵守的规则):
http协议中的数据又叫 报文
请求
客户端 --------------> 服务器
响应
请求:get
(1)form标签 method=get
(2)a 标签
(3)link标签引入css
(4)img标签引入图片
(5)Script标签引入js对象
(6)iframe引入html页面
(7)在浏览器地址栏中输入地址后敲回车
(8)form标签 methom=post
post请求:
1.响应行:
(1)响应的协议和版本号
(2)响应状态码
(3)响应状态描述符
2.响应头
(1)key:value
不同的响应头,有其不同含义
3.响应体(-------->回传给客户端的数据)
常用的响应码说明:
200表示请求成功
302表示请求重定向
404表示服务器已经收到,但是你要的数据不存在(请求地址错误)
500表示服务器已经收到请求,但是服务器内部错误(代码错误)
3.6Request&Response
1.HttpServletRequest类的作用: 每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中.然后传递到service方法(doget和dopost)中给我们.我们可以通过HttpServletRequest对象,获取到所有请求的信息.
HttpServletRequeat的常用方法:
(1)getRequestUIR() 获取请求的资源路径
(2)getRequestURL() 获取请求的统一资源定位符(绝对路径)
(3)getRometeHost() 获取客户端的ip地址
(4)getHeader() 获取请求头
(5)getParameter() 获取请求的参数
(6)getParameteValues() 获取请求的参数(多个值的时候使用)
(7)getMethod() 获取请求的方式Get或POST
(8)setAttribute(key,value) 设置域对象
(9)getAttribute(key); 获取域数据
(10)getRequestDispatcher() 获取请求转发对象
请求转发
请求对象request: request.getRequestDispatcher("/servlet2").forward(request,responce)
请求重定向的第一种方案:
// 设置响应状态码 302 ,表示重定向,(已搬迁)
resp.setStatus(302);
// 设置响应头,说明 新的地址在哪里
resp.setHeader("Location", "http://localhost:8080");
请求重定向的第二种方案(推荐使用):
resp.sendRedirect("http://localhost:8080");