• 重定向和servlet生命周期


    重定向
    (1)什么是重定向
    服务器通知浏览器向一个新的地址发送请求。
    注:可以发送一个302状态码和一个Location消息头。(该消息头包含了一个地址,称之为重定向地址),浏览器收到之后,会立即向重定向地址发送请求。
    (2)如何重定向
    response.sendRedirect(String url);
    注:
    a.url就是重定向地址。
    b.重定向之前,容器会先清空response对象中保存的数据。
    (3)特点
    a.重定向地址是任意的。
    b.重定向之后,浏览器地址栏的地址会发生改变。


    1.数据库处理中文需要注意的问题
    数据库中的某些驱动,默认会使用“iso-8859-1”来编码,对于中文就会发生乱码。
    解决方式:
    mysql:
    jdbc:mysql://localhost:3306/数据库名?
    useUnicode=true&characterEncoding=utf-8 

    2.servlet的生命周期
    (1)什么是servlet的生命周期
    容器如何去创建servlet对象,如何对其进行初始化处理,如何调用其方法来处理请求,以及如何销毁该对象的整个过程。
    (2)生命周期分为哪几个阶段
    1)实例化
    a.什么是实例化?
    容器调用servlet的构造器,创建相应的对象。
    b.什么时候实例化?
    情况1:容器收到请求之后。
    情况2:容器启动之后,立即创建。
    <load-on-startup></load-on-startup>
    参数值要求是一个大于等于0的整数,越小,优先级越高(即先创建)。
    注:容器只会创建一个实例。
    2)初始化
    a.什么是初始化
    容器调用servlet对象的init方法。该方法只会执行一次。
    b.GenericServlet的init方法时如何实现的。
    将容易传递过来的ServletConfig对象保存下来,并且提供了一个获得该对象的方法(getServletConfig)。
    c.只需要覆盖override GenericServlet提供的init()方法。
    d.初始化参数
    step1,配置
    <init-param>
    <param-name>company</param-name>
    <param-value>西北工业大学</param-value>
    </init-param>
    step2,读取
    String ServletConfig.getInitParameter(String paramName);
    3)就绪
    4)销毁
    (3)相关的及各类与接口
    1)Servlet接口
    init
    service
    destory 
    2)GenericServlet抽象类
    实现了Servlet接口中的部分方法(init,destory)
    3)HttpServlet抽象类
    继承了GenericServlet抽象类,实现了service方法。

    3.容器如何处理请求资源路径
    比如,在浏览器地址栏输入:http://ip:port/web04-3/abc.html
    step1,容器依据应用名("/web04-3")找到应用所在的文件夹。
    step2,容器默认会认为调用的是一个servlet,去web.xml查找有没有一个和“/abc.html”匹配的servlet。
    (1)精确匹配
    <url-pattern>/abc.html</url-pattern>
    (2)通配符匹配
    使用“*”匹配0个或者多个字符,比如<url-pattern>/*</url-pattren>
    (3)后缀匹配
    使用“*.”开头,后接多个字符,比如<url-pattern>*.do</url-pattren>会匹配所有以.do结尾的请求。
    step3,如果没有匹配的servlet,则容器会查找相应的文件。

  • 相关阅读:
    js中Unicode转义序列
    css相对定位和绝对定位
    C#默认以管理员身份运行程序
    asp.net判断是否代理
    JS上传图片选择后立即预览
    asp.net判断是刷新还是提交
    查询QQ好友的IP地址(二)
    查询QQ好友的IP地址(一)
    Hadoop综合大作业+补交平时作业
    熟悉常用的Hbase操作
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/8986744.html
Copyright © 2020-2023  润新知