JSP与Servlet学习总结

    JSP全名为Java Server Pages,是一种动态生成前端的模板技术。说的直白一点应该可以这样理解,html写出了的是啥就是啥,而JSP是通过一系列逻辑等动态取到数据编译成静态的再发送给浏览器(我是这么理解的,如果理解不对请指出,多谢)。
    它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。    
    JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
    Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。


    JSP中可以放入一些指令和一些脚本:
         指令
                  <%@  page  %> 页面声明、设置
                  <%@  include  %>      (静态)包含、导入
                  <%@  taglib  %>       标签库指令(jstl中会用到)
         脚本
                  <% %>                 脚本块
                  <%! %>                声明变量、方法
                  <%= %>                表达式


    生命周期:
         JSP生命周期
         1、请求 JSP 文件
         2、JSP --> 编译(转译)
         3、java 编译为 class(字节码)
         4、加载字节码
         5、实例化
         6、初始化
         7、服务
         8、销毁
        Servlet 的生命周期
         1、类加载
         2、容器实例化(创建实例:调用构造方法)一个示例
         3、初始化 init (你可以介入)
         4、服务 service (多线程执行 doGet doPost)
         5、销毁 destroy (销毁  资源的释放)


    JSP作用域:
        1、pageContext 页面(一次请求,一个页面)

---->A
<----A

         2、request 一次请求(跨页面)

      A ---->A
---->B
      A <------------B
请求转发
特点:1>同一个请求对象
       2>地址栏不变
       3>刷新(执行A B)副作用
      4>转发的组件 B 必须在应用的内部(和A在一起)

       A ----->A
    <--A
    -->B
       B <-----B
响应重定向
特点:1>地址栏改变(刷新)
       2>发出了两个或多个请求(request)
       3>刷新无副作用
  刷新时:---->B
<----B
     
  3、session 一次会话(跨页面,一个用户在任意的页面)

  HTTP 无状态(每次请求都是全新的)

                          会话跟踪:
  1>cookie 数据浏览器(客户端)
  自动登录
  记录播放位置
  临时的
  永久的(有效期)
  Cookie c1 = new Cookie("k","v");
  response.add(c1);
  2>session 服务器
  记录用户状态
  大量数据
  浏览器关闭:会话结束
  1)临时 cookie
jsessionid=xxxxxxxxxxxxxxxxxxxxxx
HTTP 请求头
  2)用户禁用 cookie,URL 编码(重写)
  3>URL 编码(重写)
  response.encodeURL()
  4>隐藏表单
                  <input type="hidden" name="uid" value="xxxxxxx">

4、application 应用结束(任何地点、任何人)


      当用java EE 创建 java web的时候,不仅可以新建Servlet,还可以建监听器还有过滤器,他们的作用范围和方法如下:
              Listener     事件监听器
application
ServletContextListener 生命周期
        初始化
   全局资源(数据源 java.sql.DataSource)
销毁
ServletContextAttributeListener 属性改变
添加属性
替代
删除
session
HttpSession
生命周期
属性改变
会话状态的迁移
request
HttpServletRequest
  生命周期
属性改变


Filter 过滤器
字符编码的处理
访问控制(权限)
敏感词过滤
数据压缩
图片水印


    JSP中的get和post方法的区别:
         1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
         2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.get会比post传输快一些。
         3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。

          






猜你喜欢

转载自flj643213995.iteye.com/blog/2307202