`
阅读更多

servlet 学习笔记

自序

昨天心情有些失落。公司从去年底到现在就没有安排我做个正事,(也没有我什么事情,研发部门当产品出来后,还有什么好研发呢,无非就是修改 BUG ,做些维护)。没有事情的情况下,被拉着做测试。测试的内容也就是 GIS 的客户端,功能没有几个,测试很枯燥,被叫着翻来覆去做同一件事。郁闷的是部门经理的座位在我后面,虽然隔了有 <chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="米"><span lang="EN-US">4</span> <span style="FONT-FAMILY: 宋体">米</span> </chmetcnv>左右距离,但是他完全能看到我在做什么事情。他批评了我好几次“该做什么就做什么。叫你做什么就做什么。”不说了,我并不喜欢发牢骚……

鉴于工作中的种种因素,我想跳槽,换个环境。换工作,我是 java 程序员,而目前的工作无非就是写 UI swing 编程。类似的工作可不那么好找,而且也打算多长点见识。所以决定离开成都去北京找工作,而且找 J2EE 方面的。辞职前我打算做个 JSP 方面的小应用、再把 JAVA 好好复习一遍这样才对新工作有所准备。

说做就做吧。先学习 JSP (毕业前,曾自学过一点点),学习 JSP 前,有必要学习 servlet 。这就有了这一系列学习笔记……

 

<!--[if !supportLists]--> 1.       <!--[endif]--> 什么是Servlet

 

Java Servlet java 服务器小程序)是一个基于 Java 技术的 Web 组件,运行在服务器端,由 Servlet 容器所管理,用于生成动态的内容。

 

<!--[if !supportLists]--> 2.       <!--[endif]--> servletapplet区别?

 

相同点:

<!--[if !supportLists]--> ²        <!--[endif]--> 他们都不是独立的应用程序,都没有main()方法;

<!--[if !supportLists]--> ²        <!--[endif]--> 他们都生存在容器中,applet运行在浏览器中,servlet运行在servlet容器中。

<!--[if !supportLists]--> ²        <!--[endif]--> 他们都有生命周期,都有init()和destroy()方法;

不同点:

<!--[if !supportLists]--> ²        <!--[endif]--> applet具有图形界面,运行在客户端,servlet没有图形界面,运行在服务器端的servlet容器中。

我写的 applet 要多点,这样对比有利于自己更好的掌握 servlet 技术。

 

<!--[if !supportLists]--> 3.       <!--[endif]--> hello world

 

说句废话:买的书《 JAVA WEB 开发详解》,孙鑫编著,感觉讲得不好, servlet 简直就是在介绍 api 手册。

我总结的时候,自然不能这样。还是介绍个入门例子吧。

 

先说下环境变量,要编译 servlet 需要把必要的 jar 设置到 classpath 中。我的环境变量是这样设置的。(这里我把 jar 拷贝到了 jdk 目录下面)

 

.;D:\jdk\lib\dt.jar;D:\jdk\lib\tools.jar;D:\jdk\jre\lib\rt.jar;D:\jdk\lib\servlet-api.jar;D:\jdk\lib\jsp-api.jar;

 

第一个程序—— test.java

 

import javax.servlet.ServletException;

import java.io.*;

import javax.servlet.http.*;

 

public class test extends HttpServlet

{

   public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException

   {

       PrintWriter out = resp.getWriter();

       out.println("hello, world!");

       out.close();           

 

   }

}

由于设置了环境变量,这里顺利编译通过。

 

部署 servlet

webapps 目录下,建立一个目录(存储该应用)。如: hello

在该 hello 目录下建立一个特殊目录 WEB-INF ,注意全大写。之所以特殊,因为该目录对客户端不可见。如果你把 index.html 放到 WEB-INF 目录下面,然后通过 http://127.0.0.1:8080/hello/WEB-INF/index.html 访问,这样是访问不到的。

而在 WEB –INF 目录下:

建立 classes 目录来存放编译好的 class 文件。

                            建立 lib 目录来存放运行所需要的其他包。

                            建立重要的 web.xml 配置文件。

web.xml 可以包含如下的配置和部署信息:

<!--[if !supportLists]--> ²        <!--[endif]--> ServletContext的初始参数;

<!--[if !supportLists]--> ²        <!--[endif]--> Session的配置;

<!--[if !supportLists]--> ²        <!--[endif]--> Servlet/Jsp的定义;

<!--[if !supportLists]--> ²        <!--[endif]--> Servlet/Jsp的映射;

<!--[if !supportLists]--> ²        <!--[endif]--> MIME类型映射;

<!--[if !supportLists]--> ²        <!--[endif]--> 欢迎文件列表;

<!--[if !supportLists]--> ²        <!--[endif]--> 错误页面;

<!--[if !supportLists]--> ²        <!--[endif]--> 安全;

<!--[if !supportLists]--> ²        <!--[endif]--> 地区和编码映射;

<!--[if !supportLists]--> ²        <!--[endif]--> jsp配置。

我们编写的 xml 必须是格式良好的 xml web.xml

<?xml version =”<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”">1.0”</chmetcnv> encoding=”ISO-8859<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="True" hasspace="False" sourcevalue="1" unitname="”">-1”</chmetcnv>?>

<web-app>

<servlet>

       <servlet-name>helloworld</servlet-name>

       <servlet-class>test</servlet-class>

</servlet>

<servlet-mapping>

       <servlet-name>helloworld</servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

</web-app>

 

这样输入:“ http://127.0.0.1:8080/hello/hello “就访问到了刚才写的 servlet

再介绍一种访问 servlet 方式: telnet 方式

telnet localhost 8080

回车,输入

GET /hello/hello HTTP/1.1

Host:localhost

dos 窗口下将显示 hello world

 

如果要用 servlet 处理表单提交的信息,表单提交方式一般情况分 get post 。相应的我们就应该覆盖 HttpServlet 中的 doGet ()、 doPost ()方法。表单中 action servlet url-/pattern 值。

 

值得注意的是: web.xml servlet 2.2 2.3 规范中都由 DTD 定义,所有有元素间严格的顺利关系,而 servlet2.4 规范中, web.xml 文件改为, xml schema 来定义文档的结构,其中一个好处是元素出现的顺序不再有严格的限定。如果要兼容低版本的,还是得有严格的顺序关系。

 

提示一旦修改过 servlet 就应该重启 tomcat

 

 

分享到:
评论

相关推荐

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之一Java学习笔记 Java相关课程系列笔记之四JDBC学习笔记 Java相关课程系列笔记之六HTML学习笔记 Java相关课程系列笔记之七CSS学习笔记 Java相关课程系列笔记之八JavaScript学习笔记 Java相关...

    JSP&Servlet学习笔记.pdf

    本书是作者多年来教学实践经验的总结,汇集了... 本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP & Servlet技术应用于“微博”程序之中,以便读者能了解完整的应用程序构建方法。

    JSP &amp; Servlet学习笔记(第2版)

    书 名:JSP & Servlet学习笔记(第2版) 作 者:(台湾)林信良 著 出 版 社:清华大学出版社 出版时间:2012-5-1 ISBN:9787302283669 纸书页数:456页 定 价:¥ 58.00 内容简介: 本书是作者多年来...

    JSP & Servlet学习笔记

    本书是作者多年来教学实践经验的总结,汇集了..., 本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP & Servlet技术应用于“微博”程序之中,以便读者能了解完整的应用程序构建方法。

    JSP_Servlet学习笔记(第2版)

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP &Servlet;时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...

    servlet学习笔记.doc

    Servlet是Java平台中用于开发Web应用程序的核心技术之一,它是一个Java类,遵循Java Servlet API规范,用于处理来自客户端(通常是Web浏览器)的HTTP...学习和理解Servlet是成为一名合格的Web开发者的关键技能之一。

    java-servlet学习笔记

    Java Servlet是Java Web开发中的核心组件之一,它用于构建动态网站和Web应用程序。Servlet是一个Java类,遵循Java Servlet API规范,能够接收并响应来自客户端(如浏览器)的HTTP请求,处理数据,然后返回响应结果。...

    方立勋servlet学习笔记

    ### 方立勋servlet学习笔记知识点总结 #### 一、Servlet概述与生命周期 - **Service方法**:在Servlet中,`service`方法是核心方法之一,由服务器调用来处理客户端的请求。它根据HTTP请求类型(如GET或POST)调用...

    Servlet学习笔记2

    ### Servlet学习笔记2 在Java Web开发中,Servlet是一种重要的技术,它负责处理客户端的请求并生成响应。本文档将围绕“Servlet学习笔记2”这一主题进行深入探讨,旨在为读者提供一个清晰的学习路径和实践指导。 #...

    javaEE servlet 学习笔记

    在Java EE开发中,Servlet是核心组件之一,用于处理HTTP请求和响应,实现服务器端的业务逻辑。Servlet在MVC(Model-View-Controller)架构中扮演着Controller的角色,负责接收用户请求,处理数据,然后转发到相应的...

    Servlet学习笔记4

    ### Servlet学习笔记4 #### 一、URL Pattern详解 在Servlet配置中,URL Pattern是非常重要的一个概念,它决定了Servlet能够响应哪些请求路径。通常来说,URL Pattern可以分为三种类型: 1. **确切路径匹配**:...

    超详细的ServletL学习笔记

    ### 超详细的Servlet学习笔记 #### 一、Servlet简介 **Servlet** 是Java平台上的一个重要的技术标准,主要用于扩展Web服务器的功能。它允许开发者创建能够处理动态内容的应用程序组件,这些组件通常被称为...

    Servlet学习笔记

    Servlet技术是Java Web开发的核心组件之一,它是一个基于Java的Web应用组件,运行于Web服务器或应用服务器中,用于扩展服务器的功能,处理客户端的请求并返回响应。Java Servlet可视为服务器端的applet(小程序),...

    servlet学习笔记

    ### servlet学习笔记详解 #### Tomcat介绍 **Tomcat服务器**是基于Sun公司的JSWDK(Java Servlet and Web Development Kit)发展而来的杰出Servlet/JSP容器。作为Apache-Jakarta项目的一部分,Tomcat不仅能够执行...

    Servlet&JSP学习笔记源代码

    在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...

    Java相关课程系列笔记

    Java相关课程系列笔记之九Servlet学习笔记(建议用WPS打开) Java相关课程系列笔记之六HTML学习笔记(建议用WPS打开) Java相关课程系列笔记之七CSS学习笔记(建议用WPS打开) Java相关课程系列笔记之三PLSQL学习...

Global site tag (gtag.js) - Google Analytics