Servlet(2)

时间:2023-03-09 15:39:17
Servlet(2)

HttpServlet

  简介:

    Servlet 就是一个普通的java类,是运行在web容器上(tomcat)上的一个java类

    用来通过Servlet中的代码,接受Http中浏览器的请求信息,以及对浏览器相应信息。

    Servlet 默认情况下为单例模式,且每次用户访问,都会开启新的现场,调用serivice方法,请求处理!

  编写步骤:

    1,编写一盒java类,继承自HttpServlet.

    2,重写父类的service方法。

    3,,在service方法中,处理请求 以及进行相应。

    4,将编写的Servlet通过web.xml 想tomcat进行映射。

  web.xml中 添加映射

    web.xml在项目中的位置:

      项目/webContent/web-inf/web.xml

    步骤1:

      向Servlet信息,配置到web.xml,并起别名;         

              <servlet>
<servlet-name>任意标识符(别名)</servlet-name>
<servlet-class>类的全称(包名.类名)</servlet-class>
</servlet>

    步骤2:

      -根据别名,映射对应的网址       

             <servlet-mapping>
<servlet-name>步骤1中的别名</servlet-name>
<url-pattern>/地址</url-pattern>
</servlet-mapping>
url-pattern:
编写的是用户通过浏览器所访问的地址 , 我们仅需要编写相对路径即可 ! 例如:
/sbgww
访问此servlet的网址为:
http://ip地址:端口号/项目名/sbgww

  Servlet常用操作:

    1,设置相应编码:

      方式一:

        response.setContentType("test/html;charset=utf-8");

        用于相应页面内容,进行设置编码格式!

      方式二:

        response.setCharacterEncoding("utf-8");

        常用于编写往立接口,用于返回XML或JSON信息!

    2,通过相应对象,获取输出流

      PrintWriter out = response.getWriter();

  Servlet生命周期

    单利模式~

    当第一次访问时,创建! 当服务器关闭时消亡!

    Servlet的生命周期,描述的就剩Servlet从创建到消亡的过程。

    这个过程,在Servlet类中,纯在三个方法的具体体现:

    - init方法,当Servlet 创建后,立即执行,表示Servlet初始化

       常用与初始化资源操作,例如:io流 数据库链接 等等初始化!

    -    service 方法,当用户访问时,开启新的现场,执行此方法, Servlet 正在浏览服务器

    -    desrtoy 方法 ,当Servlet 即将为销毁时,执行!   常用与销毁资源!

  

 接受用户请求的参数

    1, 接受单个参数值

        String value  =  request.getParameter("key");

    2,   接受一组相同key的 请求参数值 数组;

        String [] values =  request.getparameterValues("key");

  

 请求参数:乱码问题

    解决乱码:

      方式一 :

         适用于解决所有乱码问题,但是一次只能解决一个文本!

         步骤1  将接受到的参数值,按照iso - 8859-1编码打碎成字节数组

                      byte [] bytes = value.getBytes("ISO-8859-1")

            步骤2. 将得到的字节数组, 按照UTF-8编码组装为字符串

             String text = new String(bytes,"UTF-8");

      方式二 :

         设置请求体的编码格式!(GET请求参数不通过请求体传递,只适用于POST请求)

            request.setCharacterEncoding("UTF-8")