servlet & JSP

最近有阅读一本《HEAD FIRST servlet & JSP》

此文,权当读书记录。书越读的多,越发现自己知道的少。(书读的太少,所以读书感悟都没有。。)

Head First系列,主要讲究有方式的学习,所谓的方式呢,就是让你的大脑灵活起来,(即在学习的过程中,让你的大脑去进行更多的神经活动)

书本很厚,内容也很多,细节也很丰富,所以一一记录也不太现实,所以先记录一些关键字:

 

1. web访问流程

 

web服务器接收客户端请求,然后向客户返回一些结果。这些结果可以是:图片,二进制文件,html,文本等等。

 

2. HTTP

http请求 :

   基本要素: http方法, url, 表单参数 

   报文格式:起始行,首部,主体。 

   例: 

  

http响应 :

   基本要素: 状态码, 内容类型(content-type),内容

   报文格式:起始行,首部,主体。 

   例:

  

  另外http请求首部中有两个非常重要的首部,一个是connection,accept。

  响应首部重要的是:content-type。(请求中的accpet和响应中的content-type是有不少的关系的。)

3.servlet容器 (这里说的是tomcat)

  作用: 通信支持。(监听端口,创建流等)

      生命周期管理。(管理servlet生命周期)

      多线程支持。

      声明方式实现安全。

      JSP支持。(翻译jsp为java)

  如何找到servlet:根据web.xml配置的url。

 

4. MVC

5.servlet

  生命周期: 容器加载类,初始化servlet,调用init方法(只调用一次),service,destory

  每个请求都在单独的线程中运行。

  重定向与请求分派。(重定向直接让用户发给另外一个人,请求分派则是自己让另外一个人解决,然后返回给客户,客户根本就不知道具体情况)

  相关关键字: init-param, context-param, listener, 作用域(context,request,session),作用域线程安全问题(context不安全,request线程安全,session不安全),

6.session

  session实现: cookie,url重写。

7.JSP

  终极目标:蜕变为servlet。(MyJSP.jsp -> MyJsp_jsp.java -> MyJsp_jsp.clss -> MyJsp_jsp(servlet));

  jsp脚本,  <% javacode %>

  jsp指令,  <%@page %> , page, include, taglib

  jsp表达式,<%= %>

  jsp声明,  <%! int i = 1; %>

  jsp动作,  <jsp:include />, <jsp:userBean /><jsp:setProperty /><jsp:getProperty />

  

  注册jspInit()方法。

  jsp隐式对象:request,response,out,session,config,application,page,pageContext,exception。

  jsp4大作用域: page,request,application,session

  web.xml中配置<scripting-invaild>false</scripting-invaild>,禁用脚本。

  web.xml中配置<el-ignored>true</el-ignored>

  或<%@page isELignored="true"%>禁用EL表达式。

 

8.无脚本JSP

  EL表达式:EL隐式对象 [pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,cookie,initParam,pageContext]

  JSP标准动作。

  JSP标准库。

 

原文地址:https://www.cnblogs.com/w2154/p/5257741.html