web核心技术

帮助我们完成 浏览器与服务器的交互。
处理请求和响应。

一、HTTP协议
超文本传输协议。规定了B/S结构中,网络双方数据交互的格式。
两部分
请求协议 最重要 请求参数
请求行
请求方式 资源路径 协议/版本
请求头
都是键值对,代表着是浏览器给服务器的一些信息。
有个cookie内容。
请求体
只有post才有,里面放的是浏览器带给服务器的访问参数。
响应协议 最重要 响应内容
响应行
协议/版本 状态码
需要知道常见的状态码,自己以后出现的新的状态码记得收集。
比如你们后面会出现的 400 403 405 (面试题)
响应头
服务器给浏览器的,也是键值对儿。
setCookie
content-type 设置当前数据的MIME类型 以及编码格式

      响应体
	    响应正文 ,也就是服务器响应浏览器的内容。
	    
怎么在浏览器观察传输的内容呢? F12 network--->

二、Servlet
是什么?
服务器端小程序,用来处理请求与响应的。
浏览器可以通过地址访问到servlet.
想访问到指定的servlet
协议//ip:端口号/项目虚拟路径/访问的servlet的虚拟路径

面试题
说一下Servlet生命周期
创建 默认情况下 当浏览器访问指定的Servlet时候,服务器会通过反射形式创建该Servlet对象,
并调用其init方法,立即调用service方法,提供服务。
作用 每次访问都会调用service方法。Servlet是单例的,在一个程序中只有一个。
销毁 当服务器关闭或者项目移除的时候,该Servlet会先调用destroy方法,然后销毁。

  	默认当一个请求来了,服务器会先去检查有没有这个servlet,如果没有就返回404,
    如果有就创建该Servlet对象,调用init,调用service.将来再来请求的时候就不会再
    创建Servlet对象了,只是会执行service方法,当项目移除或者服务器关闭的时候,就
	会执行destroy方法,完成销毁动作。
	
完成Servlet入门案例	
  1:创建一个类直接或者间接实现Servlet.
  2:重写service方法,或者是doGet/doPost 
  3:完成注册与虚拟路径的配置。
      xml   注解

三、request 请求对象
里面封装了所有跟请求相关的内容。
获取请求行信息
getMethod()
获取请求头的信息
getHeader(…)
获取请求参数的方法
String getParameter(name)
String[] getParameterValues(name)
Map<String,String[]> getParameterMap()
扩展了一个知识点
BeanUtils
populate(bean,map) 可以完成对象属性的封装。

reqeust是一个域对象(面试)
 生命周期 
   创建 当浏览器发起对服务器的访问,到达了服务器,就代表一次请求出现了。
   作用域  只要响应不回来,请求一直有效。
   销毁 当响应到达浏览器,这次请求就结束了。

针对域对象,不管哪个域,都可以使用XXXAttribute方法。

小知识点:
    请求参数中有了编码问题,怎么解决滴
      request.setCharacterEncoding("utf-8")
案例体现 
    要债案例帮助我们理解请求转发!
request.getRequestDispatcher("请求转发的那个servlet/jsp虚拟路径")
       .forward(request,response);
	注册案例:
        不仅仅体现了reqeust的使用,还有数据库的使用。		

四、response 响应对象
把有关响应的内容都做了封装。
响应:服务器回馈给浏览器的内容。
响应行 setStatus(状态码)
响应头 setHeader(“content-type”,"")
setContentType(“text/html;charset=utf-8”)
响应体
获取字符流 getWriter()
获取字节流 getOutputStream()

  重定向 通过借钱案例理解。
   涉及API 
       setStatus(302)  setHeader("location","重定向地址")
      简化  sendRedirect("重定向地址")

面试题
请求转发和重定向的区别
1:请求转发是一次请求一次响应,重定向至少两次请求两次响应,一次主动,其余自动。
2:请求转发属于服务内部行为,重定向属于服务器外部行为。
3:请求转发的地址栏不会改变,重定向会发生改变。
4:请求转发由request对象完成的,重定向由response对象完成。

案例:
下载操作(理解 下载的流程 本质是 IO流的文件复制)
登录案例

五、ServletContext对象
它是什么,当tomcat一启动,就会为每一个web项目创建一个ServletContext对象。
只能获取 在Servlet getServletContext()

它是一个域对象,代表着当前的web项目容器。

作用 
  1:获取项目的初始化参数。web.xml配置的数据。
  2:获取到项目相关的内容  getContextPath() 项目的虚拟路径 
  3:实现多个servlet之间通信。 
  4:获取文件的真实路径位置。getRealPath();

ServletContext域对象  xxxAttribute
生命周期 
  创建  服务器一启动,tomcat就会为每个web项目创建ServletContext对象。
  作用域 只要web项目存在,它就存在,就有作用域。
  销毁	服务器关闭,或者项目移除。  

六、cookie
是什么?存在于浏览器端的会话技术。用来保存会话过程中产生临时数据。

作用:可以把数据存储到浏览器,浏览器可以解析到页面。

API	
  创建cookie new Cookie(name,value)
  放到response中,response.addCookie(cookie)
  获取所有cookie 
     Cookie[] cookies = request.getCookies()
  获取cookie的键 cookie.getName() 
  获取cookie的值 cookie.getValue()

  cookie的设置 
  设置路径  cookie.setPath(路径)
  设置存活时间 cookie.setMaxAge(秒)	  
  
  cookie删除   设置一个同名同路径的cookie,设置存活时间为0.

案例体现:记住用户名密码案例!
         体现了cookie可以在浏览器端进行获取展示!

七、session
是什么 服务器端的会话技术。
作用 用来标识不同的用户。
当浏览器访问了服务器,就代表一次会话产生了,服务器就会为这次会话创建一个sesison对象,
在这次会话中进行多次请求和响应,多次请求和响应可以共享session中的数据。
出了这次会话,数据就不会共享了。

用在哪里呢? 
  1:验证码的校验。
  2:用户的购物车可以是session形式的(web黑马商城中体现)。
  3: session可以保存用户的状态。(web黑马商场中体现)。

SessionAPI
1:获取session request.getSession()
如果请求没有jessionid,那么就创建一个新的session对象。
如果有,就根据id去session池中获取。

 2: 是一个域对象 
     xxxAttribute

 3: 销毁功能
      session对象setMaxInactiveInterval(秒);	 
      seesion对象.invalidate()
      tomcat配置  30分钟之后
      服务器关闭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值