servlet初探

Servlet是JavaEE规范之一,规范就是接口

大家都知道Javaweb的三大组件是:servlet程序、Filter过滤器和Listener监听器。

那么怎么实现一个Servlet程序呢?
有两种方法,一是手动实现,二是通过继承来实现。

一、手动实现一个Servlet程序

  1. 编写一个类去实现Servlet接口
  `import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Helloservlet implements Servlet{
//调用init()、service()、destroy()等方法
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Servlet请求被访问了");
	}

}

2. 实现service方法,处理请求,并响应数据

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("Servlet请求被访问了");
	}
  1. 到web.xml中去配置servlet程序的访问地址
 <servlet>
 //这里写别名
    <servlet-name>Helloservlet</servlet-name>
    //这里写全类名
    <servlet-class>com.luo.servlet</servlet-class>
  </servlet>
  <servlet-mapping>
  //前端如何访问 Servlet , Servlet访问URL
    <servlet-name>Helloservlet</servlet-name>
    <url-pattern>/Helloservlet</url-pattern>
  </servlet-mapping>

二、通过继承HttpServlet实现Servlet程序(常用)
1.编写一个类去继承HttpServlet类
2.根据需要去重写doGet或doPost方法

public class Deal2Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Deal2Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		System.out.println("deal2Servlet初始化.......");
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//做一个重定向     checkbox需要value属性  getParameterValues
		response.sendRedirect("show2.jsp?userid=18889&username=lisi");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("重写了doPost方法");
	}

}

在这里插入图片描述运行后服务器接收消息

3.到web.xml中去配置servlet程序的访问地址

<servlet>
    <servlet-name>DealServlet</servlet-name>
    <!-- Servlet的类路径 -->
    <servlet-class>DealServlet</servlet-class>
    <!-- 指定初始化的时间和顺序   是一个整数 -->
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>DealServlet</servlet-name>
    <!-- 前端如何访问 Servlet , Servlet访问URL -->
    <url-pattern>/DealServlet</url-pattern>
  </servlet-mapping>
  
  
  
  <servlet>
    <servlet-name>Deal2Servlet</servlet-name>
    <servlet-class>com.hzyc.servlet.Deal2Servlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Deal2Servlet</servlet-name>
    <url-pattern>/Deal2Servlet</url-pattern>
  </servlet-mapping>

理清一下Servlet类继承体系:
自定义的Servlet程序继承了class HttpServlet(实现了service方法),重写了doPost和doGet方法,而后者继承了class Generic Servlet,(做了很多空实现)实现了Interface Servlet(只负责servlet程序的访问规范)

笔者还在自学中,第一次写博客,若有错误之处请指正,感激不尽

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值