赞
踩
url:统一资源定位符 http://localhost:8080/
1)URL地址格式排列为:scheme://host:port/path
2)组成:
(1)第一部分是协议
(2)第二部分是存有该资源的主机ip地址(有时也包括端口号)
(3)第三部分是主机资源的具体地址。如目录和文件名等
(4)第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。
http:超文本传输协议
http协议详解
GET和POST请求区别:
GET:
1.请求的参数以?形式拼接在url后
2.数据不安全
3.数据处理能力(不能处理大量数据)
POST:
1.请求的参数是放在请求体中
2.安全(相对安全性)
3.可以处理大量数据
<load-on-startup>: 标记容器是否在启动的时候就加载这个servlet(实例化并调用其 init()方法)。
1)它的值必须是一个整数,表示servlet应该被载入的顺序
2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。
4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。
5)当值相同时,容器就会自己选择顺序来加载。
所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。
-
- 《servlet>
- <servlet-name>invoker</servlet-name>
- <servlet-class>
- org.apache.catalina.servlets.InvokerServlet
- </servlet-class>
- <load-on-startup>2</load-on-startup>
- 《/servlet>
6.
- request- api :
- 1) getMethod(); //获取请求方法
- 2) getRequestURL(); //获取请求路径
- 3) getServerName(); //获取请求的主机名称
- 4) getParameter(String param)-String/null
- //获取请求参数 param:请求的参数名称
- //根据参数名称获取参数数据
- 5)request.setCharacterEncoding("utf-8") //设置请求的编码格式
- response- api:
- 1) setCharacterEncoding("utf-8") //设置响应的编码格式
- setContentType("text/html") //设置响应的文本类型
- 2) setContentType("text/html;charset=utf-8")
- 3) getWriter()-PrintWriter //处理响应,获取响应输出流
7. ServletConfig和ServletContext
8. Servlet中getInitParameter,getParameter,getAttribute异同
9. 三大域对象
10. 请求跳转和重定向
11. 重定向过程:客户浏览器发送http请求——》web服务器接受后发送302状态码响应及对应新的location给客户浏览器——》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址——》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。
请求转发过程:客户浏览器发送http请求——》web服务器接受此请求——》调用内部的一个方法在容器内部完成请求处理和转发动作——》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。内部跳转行为是浏览器只做了一次访问请求。
- 总结:
- 请求转发[转发是服务端行为,客户端只发送了一个请求,跳转的两个界面共享同一个请求对象]
- * 1.url地址没有变化
- * 2.跳转的两个界面共享requet中的数据(参数数据,域中数据)
- * 3.只能跳转到当前工程的其他资源文件中
- *
- * 实现:
- * 1)调用HttpServiceRequest的getRequestDispathcher()方法获取RequestDispatcher对象
- *  调用getRequestDispatcher()需要传入转发的地址
- * 2)调用requestDispatcher的forword(request,request)进行请求的转发
- *
- 重定向 [客户端行为,客户端发送了两个请求]
- * 1.url地址发生变化
- * 2.跳转的两个界面不能共享请求数据
- * 3.可以跳转到其他工程的资源文件
- *
- * 实现:response.sendRedirect(path);
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- HttpSession request.getSession(boolean create):
- 参数:
- true:和getSession()功能一样。
- false:根据客户端JSESSIONID的cookie的值,找对应的HttpSession对象,找不到返回null(不会创建新的,只是查询)。
HttpSession request.getSession():内部执行原理:
(1)获取名称为JSESSIONID的cookie的值。
(2)没有这样的cookie,创建一个新的HttpSession对象,分配一个唯一的SessionID,并且向客户端写了一个名字JSESSIONID=sessionID的cookie
(3)有这样的Cookie,获取cookie的值(即HttpSession对象的值),从服务器的内存中根据ID找那个HttpSession对象:
找到了:取出继续为你服务。
找不到:从2开始。
4)Cookie 和 Session 的区别:
(1)Cookie中的数据存放在浏览器中(客户端)
Session中的数据存放在服务器中
(2)Cookie中只能存放String数据
Session中存放Object数据
(3)生命周期
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。