编写第一个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>1</loadon-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会启动出错

<welcome-file-list></welcome-file-list>后面加上:

<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来向后台输出东西
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值