• Servlet


    1.form 的method与Servlet中的对应,post对应doPost方法

    在doPost方法中,可以通过request.getParamter取出对应的内容

    2.web的映射路径

    servlet中包含servlet-name和servlet-class,servlet-mapping包含servlet-name和url-pattern

    3.可以用PrintWriter pw = response.getWriter();pw.println(html);进行打印

    二、大概流程

    1.打开一个静态的html页面,假设为login.html以post形式提交数据

    2.假设用form,把账号密码提交到了/login这个路径,并且附带method = “post”

    3.tomcat接收到一个新的请求后,就会到配置文件web.xml进行匹配,发现/login,

    对应的Servlet类是LoginServlet,接下来的工作,基于此

    4.调用无参构造函数LoginServlet()实例化一个LoginServlet

    5.本次例子在实例化后调用相应的doPost方法

    6.进入doPost方法后,通过request,把页面上传递来的账号和密码信息取出来

    7.接着可以把html字符串设置在response上,并进行打印

    8.在Servlet完成工作之后,tomcat拿到被Servlet修改过的response,根据这个response生成html 字符串,然后再通过HTTP协议,这个html字符串,回发给浏览器,浏览器再根据HTTP协议获取这个html字符串,并渲染在界面上。

    三、哪些是get方式

    1.form默认的方式

    2.如果通过一个超链访问某个地址

    3.如果在地址栏直接输入某个地址

    4.ajax指定使用get方式的时候

    四、哪些是post方法

    1.在form上显示设置method = “post”的时候

    ajax指定post方法的时候

    另外:有时候也会直接重写service()方法,在其中提供相应的服务,就不用区分到底是get还是post了

    五、中文问题

    1.login.html中加上

    <meta http-equiv = "Content-Type" content="text/html;charset = UTF-8" >

    2.login.html

    form的method修改为post

    3.在servlet进行编码和解码

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

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

    或者使用一句:

    request.setCharacterEncoding("UTF-8");

    4.返回中文的响应

    response.setContentType("text/html;charset=UTF-8");

    六、生命周期

    一个Servlet的生命周期由实例化,初始化,提供服务,销毁,被回收几个步骤组成

    七、跳转

    在Servlet中进行服务端跳转的方式

    request.getRequestDispatcher("success.html").forward(request,response);

    客户端跳转:

    response.sendRedirect("fail.html");

    八、设置自启动

    <load-on-startup>10<load-on-startup>

    九、response

    1.设置响应格式

    response.setContentType("text/html");

    2.设置响应编码

    response.setContentType("text/html;charset=UTF-8");

    response.setCharacterEncoding("UTF-8");

    3.301跳转

    response.setStatus(301);

    response.setHeader("Location","fail.html");

    4.设置不使用缓存

    response.setDateHeader("Expires",0);

    response.setHeader("Cache-Control","no-cache");

    response.setHeader("pragma","no-cache");

  • 相关阅读:
    LeetCode 404. 左叶子之和
    三年了
    LeetCode 543. 二叉树的直径
    求结点在二叉排序树中层次的算法
    LeetCode 98. 验证二叉搜索树
    LeetCode 236. 二叉树的最近公共祖先
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 113. 路径总和 II
    LeetCode 107. 二叉树的层次遍历 II
    LeetCode 144. 二叉树的前序遍历 (非递归)
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/8542703.html
Copyright © 2020-2023  润新知