当前位置:编程学习 > JSP >>

Servlet和JSP知识复习(2)Servlet基础

答案:
Servlet和JSP知识复习(2)Servlet基础
 
·生成HTML的servlet
    ·告知浏览器接下来发送的时HTML
        - response.setContentType(“text/html”);
    ·修改println语句以构建合法的Web页面
        - 打印语句应用输出相应的HTML标签。
    ·用形式语法验证器 检查生成的HTML
        - http://validator.w3.org/
        - http://www.htmlhelp.com/tools/validator/
 
·servlet的打包
    ·将文件移动到与预想的包名相匹配的子目录中
    ·在类文件中插入包语句
        - E.g package org.waityou.test.servlet;
    ·要保证CLASSPATH指出顶层目录
    ·在URL中包括包名
        - E.g http://localhost/servlet/org.waityou.test.servlet.TestServlet
 
·一些简单的、用以构建HTML的实用工具类
    public class ServletUtilities {
public static final String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">";
public static String headWithTitle(String title) {
return(DOCTYPE + "\n" +
"<HTML>\n" +
"<HEAD><TITLE>" + title +
"</TITLE></HEAD>\n");
}
...
}
·不要走极端
    - 完整的HTML生成包常常不能很好地工作
    - 应用JSP框架时更好的解决方案。
 
·servlet的生命周期
    ·init
        -仅在servlet首次载入时执行一次。
            不是每次请求都要调用。
    ·service
        -在新线程中由服务器为每个请求而调用。发送到
            doGet,doPost等。
            不要覆盖这个方法!
    ·doGet,doPost,doXxx
        -处理GET,POST,等请求。
        -覆盖这些方法以提供期望的行为。
    ·destroy
        -在服务器删除servlet的实例时调用。
            不是每次请求后都调用。
 
·为什么不应该覆盖service
    ·之后可以通过加入doPut,doTrace等支持其他服务。
    ·通过添加getLastModified方法,就可以支持修改日期。
    ·service方法自动提供下述支持:
        - HEAD请求
        - OPTIONS请求
        - TRACE请求
    ·其他方案:让doPost调用doGet
 
·servlet的调试
    ·使用打印语句;在桌面计算机上运行服务器
    ·使用Apache Log4J
    ·使用IDE集成的调试器
    ·直接查看HTML源码
    ·返回错误页面给客户
        -需要针对缺失或异常数据预先规划
    ·使用日志文件
        - log(“message”)或log(“message”, Throwable)
    ·分别处理请求和响应数据
    ·停止并重新启动服务器
 
·小结
    ·主要的servlet代码都在doGet或doPost中:
        - HttpServletRequest包含输入信息
        - HttpServletResponse允许我们设定发送出去的信息
            ·调用setContentType指定MIME类型
            ·调用getWriter获取针对客户的Writer
    ·一次性的设置代码放在init中
        - servlet仅仅初始化并载入一次
        - servlet被多次调用
        - 初始化参数在web.xml中设定。

上一个:用js+jsp实现在同一个下拉列表中,动态生成多级select选项
下一个:Servlet和JSP知识复习(1)Servlet & JSP 技术概述

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,