zoukankan      html  css  js  c++  java
  • Servlet_2

    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");

  • 相关阅读:
    C++成员变量与函数内存分配
    Sqlite ContentProvider Loader 上下文 对话框
    好书好人生--读书的步骤
    小智慧40
    流媒体开发之-直播界面切换电视台频道
    HDU 4617Weapon(两条异面直线的距离)
    BON取代半岛电视,美国人要“换口味”了吗?
    【Todo】Lucene系统学习
    Zookeeper学习 & Paxos
    C++中的虚继承 & 重载隐藏覆盖的讨论
  • 原文地址:https://www.cnblogs.com/zxj-262410/p/8542704.html
Copyright © 2011-2022 走看看