zoukankan      html  css  js  c++  java
  • javaweb笔记二

    web服务器:实现服务器的开启,监听端口,接收客户端请求,产生响应。响应信息只能是静态的HTML,缺乏灵活性。
    web容器:是辅助应用的一种方式,是为了解决web服务器缺陷而产生的。可以将请求信息处理完成以后,动态产生响应信息。
    web应用服务器=web服务器+web容器

    中文乱码解决办法:表单method="post"
    servlet中请求和响应乱码的解决:
    //设置请求信息编码集,只对POST有效
    req.setCharacterEncoding("utf-8");
    //设置响应信息的MIME类型和编码集
    resp.setContentType("text/html;charset=utf-8");

    servlet中的路径问题:
    //在请求url中,直接书写请求路径,默认在当前目录下查找。
    <form action="aaa">

    在请求url中,以/开始,表示回到webapps根目录,需要加上布署名
    <form action="/testWeb/aaa">

    精确映射: /test 只能以/test路径访问servlet
    扩展映射: *.do 以.do结尾的请求,都能访问servlet
    路径映射: /abc/* 凡是以/abc/目录开始的请求,都能访问servlet

    ******servlet生命周期:
    1、启动tomcat,读取conf/server.xml文件,以确定启动端口,和web应用程序存放的路径。
    2、读取webapps目录中,所有WEB应用程序中的web.xml文件,并完成该文件的解析。如果web.xml文件书写错误,
    那么解析失败,从而启动时会抛出异常。注意,任何一个web应用程序的web.xml书写错误都会导致启动异常。
    3、加载并实例化servlet。如果在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
    会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。
    4、调用init()方法,完成初始化操作。
    5、当请求到达时,调用service()方法,完成业务操作。
    6、销毁阶段,调用destroy()方法,完成资源的清理。
    在整个生命周期中,1,2,3,4,6都只执行一次,只有5才是每次请求都会执行,而servlet也是单实例多线程的类。

    servlet的初始化参数,在注册servlet时,可以在<servlet>标签中加入init-param标签,完成初始化参数的配置。
    <init-param>
    <param-name>123</param-name>初始化参数名称
    <param-value>456</param-value>初始化参数的值
    </init-param>
    可以通过配置接口对象ServletConfig中,提供的getInitParameter(),根据初始化参数名称,得到对应的值。初始化参数只能在
    当前注册的servlet中使用,不能再其他地方使用。

    全局初始化参数:可以在web-app根元素中,通过context-param标签定义全局初始化参数。
    <context-param>
    <param-name>name</param-name>
    <param-value>007</param-value>
    </context-param>
    //得到全局应用上下文对象
    ServletContext context = this.getServletContext();
    String contextValue = context.getInitParameter("name");
    该参数可以被所有注册过的servlet所访问

    绑定全局共享对象:可以在应用上下文对象ServletContext中,调用setAttribute()方法,绑定对象在全局共享。无论是哪个用户,哪个servlet
    都能访问。通过getAttribute("obj")方法,得到共享对象的值。

  • 相关阅读:
    动态规划>0/1背包问题 小强斋
    【C/C++和指针】auto_ptr智能指针
    WEBSHELL
    sql反模式分析1
    SQLServer之Compute/ComputeBy实现数据汇总
    链表算法大全
    【C++ Primer】自己动手编写函数 atoi(char *str)
    MySQL 5.5 的COMPRESSED INNODB 表
    【设计模式】加薪非要老总批 职责链模式
    【C和指针】const指针
  • 原文地址:https://www.cnblogs.com/lyrand/p/7712762.html
Copyright © 2011-2022 走看看