zoukankan      html  css  js  c++  java
  • servlet三大组件

    servlet大致可以分为三个:``简单servlet过滤servlet监听servlet`

    servlet:

    servlet的创建

    1. 创建一个类并实现Servlet接口。
    2. 重写service方法。
    3. 在服务器中注册Servlet

    协议

    1. 一定是双方或多方签订的。
    2. 浏览器和服务器之间的通信是基于请求(request)和响应(reponse)的。
    3. HTTP协议就是规定浏览器和服务器之间的通信报文格式。(报文首部分为首行和头,统称为首部。)

    get、post请求

    1). get请求:请求参数在地址栏,长度有限制。

    四种设置方法:

    1. 直接在URL中设置填写。
    2. 超链接。
    3. 在method属性中设置。
    4. method属性中不填写时,默认为get

    2). post请求:请求参数在请求报文的请求主题中,长度无限制。

    设置方法:

    通过method属性修改(较安全)

    在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。可在

    中的method属性中指定提交的方式。如:<form action="inputForm"method="get">,如果不指定method属性,则会默认该属性为”get”方式。

    3). Get和post都能够提交数据,那么他们有什么不同呢?

    不同点一:

    通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。

    不同点二:

    通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。

    不同点三:

    通过Get方式提交的数据安全性不高,而Post方式的更加安全~

    Servlet容器

    Servlet是运行在服务器中的,运行Servlet的东西,我们称之为Servlet容器。

    servlet作用

    我们现在写的页面,并没有实质性的作用,也并不能处理用户名和密码,实际上,应该是点击登陆后,将请求提交给Servlet,然后再处理用户名和密码是否正确。

    1. 接受请求获取用户信息。

    2. 处理,检查是否正确。

    3. 如果正确返回一个页面,如果不正确,根据处理结果响应。

    也就是:接受请求,处理请求,根据处理结果响应。

    servlet声明周期:

    指的是Servlet对象从创建到销毁的过程。

    1. 构造器:public login(){}

      当service第一次处理请求时被调用,用来创建service对象,只会调用一次。

    2. Init();

      在构造器调用之后马上被调用,用来初始化Servlet对象,只会调用一次。

    3. service();

      用户再次发送请求,service都会被调用,调用多次,用来处理用户请求。

    4. destroy();

      Servlet对象销毁前被调用,用来执行一些收尾工作,只会执行一次。

    HttpServlet

    间接实现了Servlet接口,通过继承HttpServlet实现了一个Servlet时,我们只需要根据处理请求的类型(method的值)来重写不同方法,处理get请求,重写doGet请求;处理post请求,重写doPost请求。

    转发和重定向

    转发:

    转发时浏览器地址栏不会发生改变。

    转发时浏览器发送了一次请求。

    转发时发生在服务器的内部,浏览器不知道转发的发生。

     String con= request.getContextPath();//获取效应器
    
     RequestDispatcherrd = request.getRequestDispather(“Tomcat”);//获取派发器
    
     rd.forword(request,reponse);//发起转发
    
    

    重定向:

    重定向时地址栏发生改变。
    重定向浏览器发送了两次请求。
    重定向时发生在浏览器端的,浏览器知道重定向的发生。

    Reponse.sendRedireat(“Test.html”);
    

    过滤servlet,也就是我们常说的filter

    什么是过滤器?

    在客户端到服务器的过程中,当发送请求时,如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行,在服务器给客户端响应时也会进行判断 如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行。

    什么是oop?(拓展)

    面向对象编程,java是面向对象变成,封装、继承、多台、抽象。

    什么是aop?(拓展)

    面向切面编程。用来过滤请求。在请求到达servlet之前,对其进行过滤。

    它是sun公司srvlet2.3版本之后推出的新功能,在2.3之前的版本没有该功能,定义一个过滤器需要实现(implement)Filter接口,这里实现的是javax.servlet.Filter。

    过滤器的生命周期:

    在项目开始启动的时候,过滤器开始初始化,当有请求来的时候开始自动去执行doFilter方法,随着项目的关闭过滤器开始停止。

    ChainFilter链:

    它可以指向下一个资源,如果还有过滤器,则继续进行下一次的过滤,如果没有过滤器,则会指向资源(servlet)。

    chain.doFilter(req,resp);//放行

    filter应用场景:

    (1) 设置跨域问题(为所有的Servelt)

    (2) 解决跨域问题

    (3) 解决所有的防盗链问题

    使用过滤器的时候需要配置地址:

    (1)固定地址 (2)通配符/* (3)指定目录

    监听器:(listener)(了解)

    监听器:相当于之前所学的事件

    源:监听的是谁

    动作:触发的条件

    响应:当条件满足时会执行的函数

    ServletContext对象:

    声明周期:随着项目的启动而创建,随着项目的关闭而销毁。

    生命周期可以理解为:监听器>过滤器>servlet

    八种监听器:

    原文链接:https://blog.csdn.net/csdn19970806/article/details/80695485

  • 相关阅读:
    Ubuntu 16.04安装双显卡驱动方法收集
    Log4j的日志级别分析(转)
    Linux下使用Curl调用Java的WebService接口
    OSGI是什么
    Netflix是什么,与Spring Cloud有什么关系
    Ubuntu 16.04安装SQLite Browser操作SQLite数据库
    Eclipse关联JDK源码
    Markdown中插入图片技巧收集
    Mac OS X中Launchpad的图标添加删除方法(添加方法别试了,和Linux很大区别)
    Java反编译工具-JD-GUI
  • 原文地址:https://www.cnblogs.com/PoetryAndYou/p/11622184.html
Copyright © 2011-2022 走看看