Servlet技术主要是为了使用Web上的HTTP协议而设计的。servlet是在WEB服务器上运行的程序。Java Servlet可以用于处理客户请求或生成动态Web网页。先一个实例。然后解释。

先编辑如下文件,暂且命名为FirstServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet{ 
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response)throws ServletException,
            java.io.IOException{
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title> Servlet 测试</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("Hello,Java Servlets");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }  
}

先要在电脑上配置好JDK,下载tomcat 7.在tomcat/lib/servlet-api.jar将该jar包的路径,配置到环境变量中的系统变量,CLASSPATH中,“;C:\Users\Administrator\Desktop\java\servlet-api.jar”,注意封号,因为javax.servlet和javax.servlet.http这两个接口是在servlet-api.jar包中实现的。然后在FirstServlet.java的路径下,javac FirstServlet.java编译后,生成FirstServlet.class。然后将FirstServlet.class拷贝到你安装的tomcat 7.0中的tomcat/webapps/examples/WEB-INF/class下,(里面的jsp、servlets、websocket、websocket-deprecated都是很好的示例)。然后在路径tomcat/webapps/examples/WEB-INF/web.xml中添加

<servlet>(作用:用来命名Servlet的)
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>FirstServlet</servlet-class>(若有package名,要用.隔开)
</servlet>

<servlet-mapping>(作用:为Servlet提供一个缺省的URL)
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>

然后,在tomcat/bin/startup.bat下,双击startup.bat启动tomcat容器。输入路径:http://localhost:8080/examples/FirstServlet即可看到输出:Hello,Java Servlets。

在web.xml中添加的两个标签<servlet></servlet>和<servlet-mapping></servlet-mapping>,命名和定制URL的作用。我们可以为Servlet文件命名,并定制URL路径,其中定制URL是依赖命名的,命名必须在定制URL之前。例如:

<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>org.whatisjava.TestServlet</servlet-class>
    <init-param>
          <param-name>userName</param-name>
          <param-value>Daniel</param-value>
    </init-param>
    <init-param>
          <param-name>E-mail</param-name>
          <param-value>125485762@qq.com</param-value>
    </init-param>
</servlet>

用上面这个配置,servlet可以调用getServletConfig().getInitParameter("param1")获得参数名对应的值。

<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>org.whatisjava.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>servlet1</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

作用:实现了命名,并为Servlet定制URl

 

Java面试题总结系列 Servlet的更多相关文章

  1. 2019年Java面试题基础系列228道,题目汇总,可以先看会多少

    Java面试题(一) 1.面向对象的特征有哪些方面? 2.访问修饰符 public,private,protected,以及不写(默认)时的区别? 3.String 是最基本的数据类型吗? 4.flo ...

  2. 2019年Java面试题基础系列228道(1)

    1.面向对象的特征有哪些方面? 面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为 ...

  3. 2019年Java面试题基础系列228道(3)

    51.类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA. 有如下代码片断: try { throw new ExampleB("b")}c ...

  4. JAVA面试题解惑系列(七)——使用日期和时间

    日期和时间,不仅在考试面试题.处理的问题.似乎没有哪个项目能够避开它们.我们经常在处理用户的出生年月日.注冊日期,订单的创建时间等属性时用到,由此可见其重要性.  java.util.Date类  提 ...

  5. Java面试题_第二阶段(Servlet、HTTP、Session、JSP、 Ajax、Filter、JDBC、Mysql、Spring)

    1.1. 描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成ip地址. (2)浏览器根据 ...

  6. 2019年Java面试题基础系列228道(2)

    21.描述一下 JVM 加载 class 文件的原理机制? JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的 Java 运行时系统组件,它 ...

  7. 2019年Java面试题基础系列228道(6)

    51.ArrayList 与 LinkedList 的不区别? 最明显的区别是 ArrrayList 底层的数据结构是数组,支持随机访问,而LinkedList 的底层数据结构书链表,不支持随机访问. ...

  8. 2019年Java面试题基础系列228道(5)

    21.存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为C 么?如 C = (C) B: 这属于强制类型转换,如果被转换的B实例不是C类型,会有异常 比如你的ABC分别对应动物,猫,黑猫. ...

  9. 2019年Java面试题基础系列228道(4)

    1.Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...

随机推荐

  1. [读书笔记]C#学习笔记一: .Net Framwork

    前言: 一次偶然的机会  在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...

  2. js 优化

    一.for循环的优化 <!doctype html> <html lang="en"> <head> <meta charset=&quo ...

  3. HTML5 的 localStorage(本地数据库) 的用法

    判断浏览器是否支持localStorage可以使用下面的代码:if(window.localStorage){     alert("支持localStorage") }else{ ...

  4. android 股票数据通过日K获取周K的数据 算法 源码

    目前的数据是从新浪接口获取的, http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=sh600000&end ...

  5. Python中的魔法方法

    1.什么是魔法方法? 魔法方法就是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一 ...

  6. wamp2.5 配置Apache允许外网访问

    找到<Directory "e:/wamp/www/">节点,在里面添加Require all granted

  7. SSIS 对数据排序

    SSIS 对数据排序有两种方式,一种是使用Sort组件,一种是使用sql command的order by clause进行排序. 一,使用Sort组件进行排序 SortType:升序 ascendi ...

  8. Nutch源码阅读进程2---Generate

    继之前仓促走完nutch的第一个流程Inject后,再次起航,Debug模式走起,进入第二个预热阶段Generate~~~   上期回顾:Inject主要是将爬取列表中的url转换为指定格式<T ...

  9. Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接

    <Windows Azure Platform 系列文章目录> 我们知道,Azure Virtual Network可以 1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址 ...

  10. Windows Azure Active Directory (1) 前言 - 基于声明的验证和授权

    <Windows Azure Platform 系列文章目录> 在我们介绍整套系统架构之前,我们需要首先定义一些基本的概念. 用户及其属性: 用户值得是要使用某项服务的个体.用户一般都有一 ...