对于servlet简单知识了解

Servlet入门

​ Servlet(服务端小程序),由applet和Server结合而成;是一种新型的CGI(通用网关接口)技术,允许客户端请求服务端并通过服务端向客户端发送动态数据(来自数据库);是动态网页技术(JSP)的核心实现,Servlet基于服务端运行,可以处理客户端请求(表单数据),并向客户端响应必要的数据或者动态网页。

​ Servlet最初的版本比如常用2.0/2.5版本需要使用web.xml进行配置;但是自从进入servlet3.0版本后,所有的servlet无需配置,只需要在相关的servlet类中使用@WebServlet注解即可,新版本的Servlet创建步骤如下:

  1. 创建一个普通java类继承HttpServlet
  2. 重写doGet/doPost或者service方法
  3. 为创建的类添加注解(@WebServlet)
@WebServlet("/hello")
public class HelloServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello servlet-->"+this); 
        System.out.println("执行doGet方法");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("hello servlet-->"+this); 
        System.out.println("执行doPost方法");
    }


}

对servlet发起请求:

http://127.0.0.1/javaweb01/hello

Servlet生命周期

Servlet是一种资源,凡是资源都会有各自的生命周期,servlet的生命周期从init 到destroy也有一个过程:

  1. 当服务器启动(容器启动),会加载检查配置信息(web.xml)对所有的servlet,filter等资源进行检查
  2. 当客户端请求第一次到到servlet时,此时容器会将servlet执行init方法完成初始化(创建),在整个应用运行期间只会初始化一次
  3. 然后在根据客户端发送的请求(get、post)来决定调用doGet或者doPost方法
  4. 当服务器实例被终止(停止)时,servlet执行destroy方法完成销毁

servlet在服务器中是一个单例,意味着所有的客户端请求同一个servlet时都是通过唯一的一个实例完成请求和响应操作,因此不要在servlet定义全局变量,因为,在大量线程并发时都是访问同一个实例,因此会导致多个线程修改同一个全局变量时造成结果不一致。
servlet中提供了两种跳转方式,用于实现页面或者资源的跳转,主要包含:

  1. 请求转发
  2. 重定向
    ​### 请求转发(forward)

请求转发称之为服务端跳转,除第一次请求外,后续的请求是由服务端发起的,可以传递request范围内的数据到下一个servlet中,并且地址栏只会显示第一次请求的地址,请求转发由request对象完成。

request.getRequestDispatcher(资源).forward(request, response);

重定向(redirect)

重定向称之为客户端跳转,所有的跳转都是由客户端发起,地址栏会显示最后一次请求的资源地址,并且重新定向无法将request返回内的数据传递下一个servlet中,重定向由response对象完成。

response.sendRedirect(资源);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值