• javaweb学习 基础(一)servlet day09-day10


    day-day10(内容来自cxf老师和孤傲苍狼)

    当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

    WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
      ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
      由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

    day09

     

    day10

    day10-2

    获取客户端的IP地址、获取请求方式、获取User-Agent,得到客户端的信息(操作系统 浏览器)。

    String addr = request.getRemoteAddr();//获取客户端的IP地址

    String userAgent = request.getHeader("User-Agent");//获取名为User-Agent的请求头!

    /*
    * Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36
    */

    day10-3

    /*
    * 测试获取所有请求参数的名称
    */
    Enumeration names = request.getParameterNames();

    while(names.hasMoreElements()) {
    System.out.println(names.nextElement());
    }

    /*
    * 获取所有请求参数,封装到Map中
    */
    Map<String,String[]> map = request.getParameterMap();
    for(String name : map.keySet()) {
    String[] values = map.get(name);
    System.out.println(name + "=" + Arrays.toString(values));
    }

     

    转发,只能转发到当前web应用内的资源。 浏览器URL的地址栏不变。

    也可以直接用request进行转发:

    重定向,可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。 不能共享request范围内的数据。浏览器URL的地址栏改变。

    sendRedirect()方法不能转发到“/WEB-INF/”路径下的jsp页面资源,而getRequestDispatcher().forword()可以重定向到“/WEB-INF/”路径下的jsp页面资源。

    对于不经常变化的数据,在servlet中可以为其设置合理的缓存时间值,以避免浏览器频繁向服务器发送请求,提升服务器的性能。例如:

  • 相关阅读:
    使用循环计算斐波那契数列
    java 面向过程实现万年历
    学习js回调函数
    序列化和反序列化
    SQL语句增加字段、修改字段、修改类型、修改默认值
    使用SQL语句查询日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期) 日期转字符串
    RGB颜色表
    String 与StringBuilder有什么区别
    C# byte数组与Image的相互转换
    CentOS 7 MySQL、Tomcat、Zookeeper设置开机自启
  • 原文地址:https://www.cnblogs.com/doyi111/p/10651459.html
Copyright © 2020-2023  润新知