Servlet

来源:互联网 发布:mac osx 重装系统 编辑:程序博客网 时间:2024/06/05 16:15

1、Servlet

  • 定义:ervlet是一种服务器端的Java应用程序,即Java服务器小程序,其是由服务器端调用和执行的、按照Servlet自身规范编写的Java类。

  • 特点:

    • 1、其实就是一个特殊的java类。
    • 2、特殊在能够处理http请求和响应。(处理请求信息并将响应发送到客户端)
    • 2、特殊在内嵌了HTML代码。(用内嵌的HTML代码生成HTML页面发送到客户端。)

2、Servlet使用以下两个包中的类和接口:

1、javax.servlet     包含了可以支持通用、跨协议的servlet的类    1、Servlet接口的方法:        init(ServeltConfig config):用于初始化Servlet。        destroy():销毁Servlet。        getServletInfo():获得Servlet的信息。        getServletConfig():获得Servlet配置相关信息。        service(ServletRequest req, ServletResponse res):运行应用程序逻辑的入口点,它接收两个参数,ServletRequest表示客户端请求的信息,ServletResponse表示对客户端的响应。    2、GenericServlet类    3、ServletConfig            在Servlet的初始化中,初始化方法使用ServletConfig对象作为参数,通常这个方法保存这个对象,以便能够有方法getServletConif()返回。    4、Javax.servlet包        ServletException            ServletException包含几个构造方法和一个获得异常原因的方法            getRootCause()其返回造成这个ServletException的原因。        UnavailableException            当Servlet或者Filter暂时或者永久不能使用时,就会抛出这个异常         ServletRequest            代表了Servlet的请求,它是一个高层的接口,HttpServletRequest是它的子接口        ServletResponse            代表了Servlet的响应,它是一个高层的接口,HttpServletResponse是它的子接口        ServletInputStream            Servlet的输入流        ServletOutputStream            Servlet的输出流        ServletContext            Servlet上下文        RequestDispatcher            forward(ServletRequest request,ServletResponse response):把请求转发到服务器上的另一个资源(Servlet、JSP、HTML)。            include(ServletRequest request,ServletResponse response):把服务器上的另一个资源(Se-rvlet、JSP、HTML)包含到响应中。2、javax.servlet.http        包中的类增加了用于HTTP的功能。每个Servlet都必须实现 javax.servlet.Servlet接口。    HttpServlet类扩展了GenericServlet,提供Servlet接口的HTTP协议的特定实现        doGet:支持Http Get请求        doPost:支持Http Post请求        doPut:支持Http Put请求        doDelete:支持Http Delete请求        init和destroy:管理Servlet占用的资源        getServletInfo:获得Servlet自身的信息
  • HttpServletRequest接口可以获取由客户端传送的参数名称,也可以获取客户端正在使用的通信协议,可以获取产生请求并且接收请求的服务器远端主机名和其IP地址等信息

  • HttpServletResponse代表了对客户端的Http响应。它允许Servlet设置内容长度和回应的MIME类型,并且提供输出流ServletOutputStream

  • HttpSession这个接口被Servlet引擎用来实现Http客户端和Http会话两者之间的关联

3、Servlet体系结构。

  • 1、Servlet 该接口主要作用是提供Servlet生命周期的init()、service()和destory()方法。
  • 2、GenericServlet 是一种与协议无关的Servlet、提供了service()方法所有接口中方法的缺省实现。
  • 3、HttpServlet 该类扩展了GenericServlet、提供Servlet接口的HTTP协议的特定实现。如果Servlet必须遵循HTTP协议,则只能扩展HttpServlet类并覆盖所需的方法。

4、在web.xml 中配置 Servlet。

  • 1、命名Servlet,需要用到web-app内servlet元素的servlet-name(可以选取任意名称)和servlet-class(完全限定类名)子元素。

    <servlet>    <servlet-name>HelloServlet</servlet-name>    <servlet-class>com.hejin.helloservlet.servlet.HelloServlet</servlet-class></servlet>
  • 2、要将URL赋予已命名的Servlet,需要使用servlet-mapping元素的servlet-name(之前指定的名称)和url-pattern(URL前缀,由斜杠开始)子元素。

<servlet-mapping>    <servlet-name>HelloServlet</servlet-name>    <url-pattern>/helloServlet</url-pattern></servlet-mapping>
  • 3、注意: 许多服务器具有“热部署”能力或方法,可以交互式地重启web应用。因此,除非使用服务器专有的特性,否则每次修改完web.xml文件还是要重新启动服务器。

5、Servlet get和post的区别 。

  • 1、这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。

  • 2、在servlet开发中,以doGet()和doPost()分别处理get和post方法。

  • 3、另外还有一个service(),它是一个调度方法,当一个请求发生时,首先执行service(),不管是get还是post。也可以直接编写service()方法,这样不管是get还是post。都会执行这个方法。

6、使一个Servlet上同时支持GET和POST。在Servlet的编写中常常遇到在同一个Servlet上需要同时支持GET和POST方法 。

public void doGet(HttpServletRequest req, HttpServletResponse res)    throws ServletException, IOException{    //----显示Hello,Servlet World! }public void doPost(HttpServletRequest req, HttpServletResponse res)    throws ServletException, IOException{    doGet(req, res); }

7、Servlet和JSP的关系。

  • 1、JSP技术主要用来表现页面 ,Servlet技术主要是用来完成大量的逻辑处理
  • 2、JSP本身没有任何的业务处理逻辑,它只是简单地检索Servlet创建的JavaBean或者对象,再将动态的内容插入到预定义的模块中
  • 3、Servlet创建JSP需要的JavaBean和对象,再根据用户的行为,决定处理哪个JSP页面并发送给用户

8、Servlet的声明周期。

  • Servlet的生命周期包含了下面4个阶段

    • 1、加载和实例化
    • 2、初始化阶段 调用init()方法
    • 3、响应客户请求阶段  调用service()方法
    • 4、终止阶段  调用destroy()方法

      • Servlet初始化阶段:
          在下列时刻Servlet容器装载Servlet:
            1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的之间添加如下代码:
        1

            2,在Servlet容器启动后,客户首次向Servlet发送请求

            3,Servlet类文件被更新后,重新装载Servlet
          Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

9、Servlet中接收和响应请求参数时设置编码格式。

1、request.setCharacterEncoding("utf-8");//设置请求参数编码2、/*response.setCharacterEncoding("utf-8");*///设置响应参数编码3、response.setContentType("text/html;charset=utf-8");//设置响应内容编码

10、参数的传递。

  • 1、get 提交 url后边直接传。
  • 2、post提交 放在作用域里、传到下一个页面。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 农村在城里上学怎么办? 父母没钱不工作怎么办 qq被家长偷看怎么办 孩子考差了怎么办 父母翻看qq记录怎么办 孩子qq屏蔽父母怎么办 杜鹃花老叶脱落怎么办 父母对孩子不好怎么办 家长看孩子手机怎么办 六年级打四年级学生怎么办 儿童被家长打怎么办 老师打孩子耳光怎么办 孩子动手打母亲怎么办 小孩被老师体罚怎么办 儿子跟父母对打怎么办 两个孩子争东西怎么办 大人吵架小孩该怎么办 小孩老爱顶嘴怎么办 孩子老爱顶嘴怎么办 孩子不愿分房睡怎么办 孩子不愿意去补课怎么办 高中孩子不愿意补课怎么办 孩子协调性不好怎么办 孩子暑假不愿意补课怎么办 话唠的孩子怎么办 孩孑不做作业怎么办 孩子有消极情绪怎么办 孩子太依赖奶奶怎么办 缺少母爱的孩子怎么办 孩子分房睡害怕怎么办 孩子厌烦写作业怎么办 孩子怕黑胆小怎么办 孩子性格太急躁怎么办 性格急躁的孩子怎么办 我儿子脾气暴躁怎么办 我妈脾气不好怎么办 妈妈更年期怎么办 脾气暴躁 宝妈脾气不好怎么办 我妈妈脾气不好怎么办 孩子写作业拖拖拉拉怎么办 家长指出老师错误怎么办