Servlet和JSP

 

Servlet和JSP知识复习

 

1.Servlet的功用

    ·读取客户程序发送来的显式数据(表单数据)

    ·读取客户程序发送来的隐式数据(请求报头)

    ·生成相应的结果

    ·发送显式的数据给客户程序(HTML

    ·发送隐式的数据给客户程序(状态代码和响应报头)

 

2.为什么要动态地构建Web页面?

    ·Web页面的内容建立在用户提交的数据之上

    ·Web页面的内容由频繁变动的数据导出

    ·Web页面用到了来自于数据库或其他服务器端资源的信息

 

3.servlet相比于“传统”CGI技术的优点

    ·高效率

        - 使用线程取代操作系统进程,单一servlet副本

    ·便利

        - 众多高层实用程序

    ·功能强大

        - 提供数据共享,连接共享,持续存储等诸多功能

    ·可移植性强

        - 几乎可以在所有操作系统、所有服务器上运行

    ·花费少

        - 有众多免费或收费低廉的服务器可以选择

    ·安全

        - 不设计外壳程序,也就杜绝了使用转移符的攻击。

            没有缓冲区溢出的问题。

    ·主流

 

4.JavaServer Pages(JSP- servlet功能的扩展

 

5.实现一种简单的部署方法

    ·复制成快捷方式或符号链接

        - 制作install_dir/webapps/ROOT/WEB-INF/classes的快捷方式。

        - 对于不使用包的servlet,将.class文件复制到这个快捷方式。

        - 对使用包的servlets,将整个目录复制到快捷方式

            ·对于初学者这是最简单的方法

    ·使用javac-d选项

        - 使用这种方式可以将源文件放置在一个位置,自动将

            .class文件放置到另外的位置。

    ·由IDE来负责部署工具。

    ·使用ant或类似工具

        - 在使用定制Web应用时,Ant尤其普遍

 

6.Web应用:预览

    ·学习

        - 使用默认Web应用(在Tomcat中为ROOT

        - 使用默认URLhttp://.../servlet/ServletName

        - 有点

            ·更简单

            ·不用重新启动服务器或编辑web.xml就能够进行测试

    ·部署

        - 使用定制Web应用(在Tomcat中为install_dir/webapps

中的一个目录,结构与ROOT类似)

        - 在WEB-INF/web.xml注册定制URL

        - 有点

            ·URL看起来更好一些

            ·通过使用注册的URL,可以获得许多高级特性(初始化参数

、安全、过滤器等)

 

7.制作定制Web应用

    1.以默认Web应用的结构为范本生成一个目录。

        ·HTML(以及JSP,如果有的话)文档放在顶层目录。

        ·web.xml文件安置在WEB-INF子目录。

        ·servlet和其他类不是在WEB-INF/classes中就是在

            WEB-INF/classes中与包名相匹配的子目录中。

        ·在Tomcat中,整个目录都在install_dir/webapps中。

    2.更新CLASSPATH

 

8.制作定制Web应用

    3.在URL中使用目录名

        ·所有的URL都应该式下面的形式

            http://host/webAppDir/...

    4.使用web.xml指派定制URL

        ·使用servletservlet-mapping元素

            <servlet>

<servlet-name>TestServlet</servlet-name>

<servlet-class>

org.waityou.test.servlet.TestServlet

</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>TestServlet</servlet-name>

<url-pattern>/testservlet</url-pattern>

</servlet-mapping>

 

9.小结

    ·servlet高效、可移植、功能强大且在行业中广泛采用

    ·和实际的部署服务器无关,可以在桌面计算机运行免费的服务器用于开发

    ·入门之始:

        - 设置CLASSPATH

            ·servlet JAR文件

            ·包的顶级目录

        - 将类文件存放到正确的位置

            ·.../WEB-INF/classes

        - 使用正确的URL,一般为http://host/servlet/ServletName

Servlet和JSP知识复习

 

1.Servlet的功用

    ·读取客户程序发送来的显式数据(表单数据)

    ·读取客户程序发送来的隐式数据(请求报头)

    ·生成相应的结果

    ·发送显式的数据给客户程序(HTML

    ·发送隐式的数据给客户程序(状态代码和响应报头)

 

2.为什么要动态地构建Web页面?

    ·Web页面的内容建立在用户提交的数据之上

    ·Web页面的内容由频繁变动的数据导出

    ·Web页面用到了来自于数据库或其他服务器端资源的信息

 

3.servlet相比于“传统”CGI技术的优点

    ·高效率

        - 使用线程取代操作系统进程,单一servlet副本

    ·便利

        - 众多高层实用程序

    ·功能强大

        - 提供数据共享,连接共享,持续存储等诸多功能

    ·可移植性强

        - 几乎可以在所有操作系统、所有服务器上运行

    ·花费少

        - 有众多免费或收费低廉的服务器可以选择

    ·安全

        - 不设计外壳程序,也就杜绝了使用转移符的攻击。

            没有缓冲区溢出的问题。

    ·主流

 

4.JavaServer Pages(JSP- servlet功能的扩展

 

5.实现一种简单的部署方法

    ·复制成快捷方式或符号链接

        - 制作install_dir/webapps/ROOT/WEB-INF/classes的快捷方式。

        - 对于不使用包的servlet,将.class文件复制到这个快捷方式。

        - 对使用包的servlets,将整个目录复制到快捷方式

            ·对于初学者这是最简单的方法

    ·使用javac-d选项

        - 使用这种方式可以将源文件放置在一个位置,自动将

            .class文件放置到另外的位置。

    ·由IDE来负责部署工具。

    ·使用ant或类似工具

        - 在使用定制Web应用时,Ant尤其普遍

 

6.Web应用:预览

    ·学习

        - 使用默认Web应用(在Tomcat中为ROOT

        - 使用默认URLhttp://.../servlet/ServletName

        - 有点

            ·更简单

            ·不用重新启动服务器或编辑web.xml就能够进行测试

    ·部署

        - 使用定制Web应用(在Tomcat中为install_dir/webapps

中的一个目录,结构与ROOT类似)

        - 在WEB-INF/web.xml注册定制URL

        - 有点

            ·URL看起来更好一些

            ·通过使用注册的URL,可以获得许多高级特性(初始化参数

、安全、过滤器等)

 

7.制作定制Web应用

    1.以默认Web应用的结构为范本生成一个目录。

        ·HTML(以及JSP,如果有的话)文档放在顶层目录。

        ·web.xml文件安置在WEB-INF子目录。

        ·servlet和其他类不是在WEB-INF/classes中就是在

            WEB-INF/classes中与包名相匹配的子目录中。

        ·在Tomcat中,整个目录都在install_dir/webapps中。

    2.更新CLASSPATH

 

8.制作定制Web应用

    3.在URL中使用目录名

        ·所有的URL都应该式下面的形式

            http://host/webAppDir/...

    4.使用web.xml指派定制URL

        ·使用servletservlet-mapping元素

            <servlet>

<servlet-name>TestServlet</servlet-name>

<servlet-class>

org.waityou.test.servlet.TestServlet

</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>TestServlet</servlet-name>

<url-pattern>/testservlet</url-pattern>

</servlet-mapping>

 

9.小结

    ·servlet高效、可移植、功能强大且在行业中广泛采用

    ·和实际的部署服务器无关,可以在桌面计算机运行免费的服务器用于开发

    ·入门之始:

        - 设置CLASSPATH

            ·servlet JAR文件

            ·包的顶级目录

        - 将类文件存放到正确的位置

            ·.../WEB-INF/classes

        - 使用正确的URL,一般为http://host/servlet/ServletName

生成HTMLservlet

    ·告知浏览器接下来发送的时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 /"-//W 3C //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

        -在新线程中由服务器为每个请求而调用。发送到

            doGetdoPost等。

            不要覆盖这个方法!

    ·doGetdoPostdoXxx

        -处理GET,POST,等请求。

        -覆盖这些方法以提供期望的行为。

    ·destroy

        -在服务器删除servlet的实例时调用。

            不是每次请求后都调用。

 

·为什么不应该覆盖service

    ·之后可以通过加入doPutdoTrace等支持其他服务。

    ·通过添加getLastModified方法,就可以支持修改日期。

    ·service方法自动提供下述支持:

        HEAD请求

        OPTIONS请求

        TRACE请求

    ·其他方案:让doPost调用doGet

 

·servlet的调试

    ·使用打印语句;在桌面计算机上运行服务器

    ·使用Apache Log4J

    ·使用IDE集成的调试器

    ·直接查看HTML源码

    ·返回错误页面给客户

        -需要针对缺失或异常数据预先规划

    ·使用日志文件

        log(“message”)log(“message”, Throwable)

    ·分别处理请求和响应数据

    ·停止并重新启动服务器

 

·小结

    ·主要的servlet代码都在doGetdoPost中:

        HttpServletRequest包含输入信息

        HttpServletResponse允许我们设定发送出去的信息

            ·调用setContentType指定MIME类型

            ·调用getWriter获取针对客户的Writer

    ·一次性的设置代码放在init

        servlet仅仅初始化并载入一次

        servlet被多次调用

        - 初始化参数在web.xml中设定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaohuis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值