我是靠谱客的博主 无语皮皮虾,最近开发中收集的这篇文章主要介绍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程序的访问规范)

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

最后

以上就是无语皮皮虾为你收集整理的servlet初探的全部内容,希望文章能够帮你解决servlet初探所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部