编写第一个servlet例子

        • servlet简介
        • servlet生命周期
        • 手动编写servlet步骤
        • 虽然已经不需要它了,但还是讲讲web.xml的配置方法吧
        • 实现第一个servlet例子——向页面输出内容

servlet简介

简单来说,servlet就相当于是后台处理数据的一个东西。比如说表单要提交了 action提交到哪里去呢?就写一个比如XX.java 这个里面写一个java类(servlet) 这个类用于处理提交过来的信息。

然后接下来我们瞎bb一会儿:
servlet是jsp的前身,是一个可以通过”请求-响应”编程模型来访问的 在服务器上运行的小程序。
servlet容器管理context容器,一个context容器对应一个web工程
Servlet(接口):有三个方法 :Init()、service()和destroy();
类的关系
GenericServlet(抽象类,实现servlet接口):是与协议无关的servlet类。
HttpServlet(抽象类):实现了http协议的servlet类。
自定义Servlet(继承HttpServlet方法):一般重写(覆盖)doGet与doPost方法。重写哪个方法取决于用户用什么方式提交请求。

servlet生命周期

  1. init 初始化
  2. 响应客户请求 service-(doGet或doPost)
  3. 服务器关闭-终止:destroy(只有服务器被关闭时才会执行destroy,仅仅终止程序是没有用的)

一旦servlet实例被装载,servlet对象会一直保存在服务器内存当中

Tomcat装载servlet的三种情况:

  1. 当客户端首次访问某个servlet时
  2. servlet容器启动时可以自动装载某些servlet(不需要客户端进行请求)
    需要在web.xml文件中进行如下配置:
<servlet>
    <loadon-startup>1loadon-startup>//数字越小优先级越高
servlet>
  1. servlet类文件被更新后,也会重新装载servlet

手动编写servlet步骤

  1. 继承HttpServlet
  2. 重写(覆盖)doGet与doPost方法.(这取决于用户用什么方式提交请求,超链接使用的是get方式,表单可以指定使用post方法)
  3. 在web.xml中注册servlet
    在新版的eclipse中创建servlet时取消了自动在web.xml中生成servlet 和mapping,取而代之的时在servlet中加入注解@webservlet,在@WebServlet 中定义Servlet的name、urlPatterns等信息。

虽然已经不需要它了,但还是讲讲web.xml的配置方法吧

注意不要既配置web.xml又配置@WebServlet,不然可能tomcat会启动出错

后面加上:

<servlet>
    <servlet-name>TaxiPriceServlet</servlet-name>//servlet的名字
    <servlet-class>Servlet.TaxiPriceServlet</servlet-class>//这里的类名要写完整,是带包名的
</servlet>

<servlet-mapping>
    <servlet-name>TaxiPriceServlet</servlet-name>//和上面的servlet-name相同(对应)
    <url-pattern>/Servlet/TaxiPriceServlet</url-pattern>//映射地址
</servlet-mapping>

实现第一个servlet例子——向页面输出内容

  1. 在src中新建一个包。就叫servlet好了。
  2. 右键包-新建servlet,然后就会发现它自己生成了很多内容。
  3. 我们现在只需要覆写一下doGet方法
    因为一般来说自动生成的doPost都会调用doGet,像这样:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

当然覆写doPost然后用doGet去调用它也是可以的,也可以都进行覆写(两种提交方式写不同的代码)
4. 调用PrintWriter类(需要import java.io.PrintWriter)——实现向浏览器输出东西
doGet和doPost方法要抛出异常:ServletException, IOException(import java.io.IOException;
import javax.servlet.ServletException;)

response.setContentType("text/html;charset=utf-8");//可以使下面的引号里支持html代码 并向页面输出中文 注意这句一定要写在printwriter前 不然输出的中文会是问号
PrintWriter out = response.getWriter();

out.println("");

//当然也可以用system.out.println来向后台输出东西

你可能感兴趣的:(java,web,servlet,out,java,web,@WebServlet,web.xml)