对Servlet的初步学习

目录

一、什么是Servlet?

二、Servlet又是怎么工作的呢?

三、servlet的生命周期

  四、自己写一个简单的servlet服务


一、什么是Servlet?

        Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

        Servlet是接口和实现类,Servlet有五个抽象方法,也是规范

1-void init(ServletConfig config)初始化配置
2-ServletConfig getServletConfig()获得配置信息
3-String getServletInfo()获取Servlet文本化信息
4-void service(ServletRquest request,ServletResponse response) 负责处理请求,给出响应(核心方法)
5-void destroy()回收资源

除此之外,servlet的类和接口关系还可以用下图来表示

servlet的编程接口则可以用此图来表示

二、Servlet又是怎么工作的呢?

        每一个servlet只会创建一个实例对象,对应每一次浏览器的请求,服务器就会产生一个线程,调用service方法,重新创建新的对应的request和response对象。

        对于servlet的单线程和多线程来处理请求,我们可以用下面这张图来理解一下

服务器对容器发出请求,容器解析以后,就会开始创建对象,初始化,调用service方法,然后返回响应信息,服务器得到响应以后,容器又会调用销毁方法销毁服务。

三、servlet的生命周期

        servlet服务有一个完整的生命周期,就像人从受精到死亡,servlet从装载服务到销毁服务则是一次完整的生命周期,接下来给大家看两张图可以便于更好的理解。

  四、自己写一个简单的servlet服务

        明白了原理以后,我们应当来尝试一个自己写一个简单的servlet服务,代码使用的是注解来搭建服务,没有选择配置。那么让我们来看看怎么写一个简单的servlet服务吧。

        1.首先我们要创建一个servlet项目,这里使用的sts作为环境,在file->new->other->web->Dynamic Web Project,然后填写相关信息即可,最后不要忘记要生成xml文件。

        2.在创建好了项目之后,我们在项目下面的Java Resources文件下的src文件下创建一个包,然后再包中生成一个class,如图

        3.然后我们要注解一个web服务@WebServlet("/demo")

        4.写一个继承HttpServlet的web服务

        5.通过HttpServlet的两个核心方法,doGet(HttpServletRequest request, HttpServletResponse response)和doPost(HttpServletRequest request, HttpServletResponse response)来完成输出。

        6.接下来启动服务即可

那么下面给出源码给大家借鉴

package majie;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/demo")
public class demo extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		//System.out.println("haha");
		doPost(request, response);
	}
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		response.setContentType("text/html;charset=UTF-8");//控制格式输出
		PrintWriter out=response.getWriter();
		out.println("你好,外星人-网页");
		System.out.println("你好,外星人-控制台");
		
	}
}

 下面是运行的结果,分别是在控制台和终端的输出。

 

 当然,如果你的网页输出显示的是乱码,那要调整一下网页编译信息的格式和服务器传输信息到网页的格式,都使用utf-8的格式,上述代码中

response.setContentType("text/html;charset=UTF-8");//控制格式输出

就是控制输出格式的作用。

好了,这次大概就是这么多的内容,下次接着来,学习路上,诸君共勉。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值