Servlet(Server Applet)Java Servlet的简称,称为服务器端小程序,用Java代码进行编写,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容

Servlet是指任何实现了这个Servlet接口,运行于支持Java的应用服务器中。

文章目录

  • Servlet使用步骤

源码:

/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements.  See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You under the Apache License, Version 2.0* (the "License"); you may not use this file except in compliance with* the License.  You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package javax.servlet;import java.io.IOException;/*** Defines methods that all servlets must implement.** <p>* A servlet is a small Java program that runs within a Web server. Servlets* receive and respond to requests from Web clients, usually across HTTP, the* HyperText Transfer Protocol.** <p>* To implement this interface, you can write a generic servlet that extends* <code>javax.servlet.GenericServlet</code> or an HTTP servlet that extends* <code>javax.servlet.http.HttpServlet</code>.** <p>* This interface defines methods to initialize a servlet, to service requests,* and to remove a servlet from the server. These are known as life-cycle* methods and are called in the following sequence:* <ol>* <li>The servlet is constructed, then initialized with the <code>init</code>* method.* <li>Any calls from clients to the <code>service</code> method are handled.* <li>The servlet is taken out of service, then destroyed with the* <code>destroy</code> method, then garbage collected and finalized.* </ol>** <p>* In addition to the life-cycle methods, this interface provides the* <code>getServletConfig</code> method, which the servlet can use to get any* startup information, and the <code>getServletInfo</code> method, which allows* the servlet to return basic information about itself, such as author,* version, and copyright.** @see GenericServlet* @see javax.servlet.http.HttpServlet*/
public interface Servlet {/*** Called by the servlet container to indicate to a servlet that the servlet* is being placed into service.** <p>* The servlet container calls the <code>init</code> method exactly once* after instantiating the servlet. The <code>init</code> method must* complete successfully before the servlet can receive any requests.** <p>* The servlet container cannot place the servlet into service if the* <code>init</code> method* <ol>* <li>Throws a <code>ServletException</code>* <li>Does not return within a time period defined by the Web server* </ol>*** @param config*            a <code>ServletConfig</code> object containing the servlet's*            configuration and initialization parameters** @exception ServletException*                if an exception has occurred that interferes with the*                servlet's normal operation** @see UnavailableException* @see #getServletConfig*/public void init(ServletConfig config) throws ServletException;//对象的初始化创建/**** Returns a {@link ServletConfig} object, which contains initialization and* startup parameters for this servlet. The <code>ServletConfig</code>* object returned is the one passed to the <code>init</code> method.** <p>* Implementations of this interface are responsible for storing the* <code>ServletConfig</code> object so that this method can return it. The* {@link GenericServlet} class, which implements this interface, already* does this.** @return the <code>ServletConfig</code> object that initializes this*         servlet** @see #init*/public ServletConfig getServletConfig();//拿到当前web对象的配置文件/*** Called by the servlet container to allow the servlet to respond to a* request.** <p>* This method is only called after the servlet's <code>init()</code> method* has completed successfully.** <p>* The status code of the response always should be set for a servlet that* throws or sends an error.*** <p>* Servlets typically run inside multithreaded servlet containers that can* handle multiple requests concurrently. Developers must be aware to* synchronize access to any shared resources such as files, network* connections, and as well as the servlet's class and instance variables.* More information on multithreaded programming in Java is available in <a* href* ="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">* the Java tutorial on multi-threaded programming</a>.*** @param req*            the <code>ServletRequest</code> object that contains the*            client's request** @param res*            the <code>ServletResponse</code> object that contains the*            servlet's response** @exception ServletException*                if an exception occurs that interferes with the servlet's*                normal operation** @exception IOException*                if an input or output exception occurs*/public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException;/*** Returns information about the servlet, such as author, version, and* copyright.** <p>* The string that this method returns should be plain text and not markup* of any kind (such as HTML, XML, etc.).** @return a <code>String</code> containing servlet information*/public String getServletInfo();//当前servlet的基本信息/*** Called by the servlet container to indicate to a servlet that the servlet* is being taken out of service. This method is only called once all* threads within the servlet's <code>service</code> method have exited or* after a timeout period has passed. After the servlet container calls this* method, it will not call the <code>service</code> method again on this* servlet.** <p>* This method gives the servlet an opportunity to clean up any resources* that are being held (for example, memory, file handles, threads) and make* sure that any persistent state is synchronized with the servlet's current* state in memory.*/public void destroy();//对象销毁
}

Servlet使用步骤

  1. 编写⼀个Java类实现Servlet的接口
  2. 在web.xml中,配置Servlet
  3. 访问servlet
//1. 编写⼀个Java类实现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 {@Overridepublic void init(ServletConfig config) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Override
/*** ⽤来处理客户的请求,并且对请求作出响应的⽅法*/public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("⼀个servlet程序。。");//把服务器的数据 返回给浏览器显示// 向⻚⾯输出⼀个HelloServlet字符串:servletResponse.getWriter().print("<font color='red'>hello servlet</font>");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}//省略剩下⽅法,采⽤默认实现
}
//2. 在web.xml中,配置Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>helloServlet</servlet-name><servlet-class>com.byc.servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>/hello</url-pattern>        <!--匹配路径--></servlet-mapping>
</web-app>

Servlet使用基本步骤及功能实现相关推荐

  1. servlet3.0新特性_查看Servlet 3.0的新增功能

    servlet3.0新特性 随着JEE6规范上市,在企业应用程序领域中如何开发应用程序方面发生了一些重大变化. 在本文中,我将介绍有关Web应用程序开发的一些更改. 首先,请告别web.xml部署描述 ...

  2. 查看Servlet 3.0的新增功能

    随着JEE6规范上市,在企业应用程序领域中如何开发应用程序方面发生了一些重大变化. 在本文中,我将介绍有关Web应用程序开发的一些更改. 首先,请告别web.xml部署描述符(至少是其中的一部分). ...

  3. 如何实现一个Servlet中的多个功能

    如何实现一个Servlet中的多个功能 前言:唉,打脸了,前脚刚说过要跟Servlet正式告别,后脚这不又来了,哈哈,总结出一点东西,纠结了一下还是做个分享吧,学习知识比面子重要,对吧,下回再也不约S ...

  4. Flurry analytics SDK集成步骤及功能简介

    Flurry analytics  SDK集成步骤及功能简介 1.Flurry analytics  SDK官网: http://www.flurry.com/flurry-analytics.htm ...

  5. uniapp 电商app 步骤条功能的使用

    步骤条功能 原型图如下图所示: dcloud插件市场中是有现成的组件的: steps步骤条插件地址:https://ext.dcloud.net.cn/plugin?id=34 使用方法 script ...

  6. JavaWeb Tomcat服务器与Servlet入门以及简单登录功能的实现

    Day12 一.Tomcat服务器 1.web资源 2.服务器 3.Tomcat服务器 4.idea 与tomcat 的整合 二.Servlet入门 1. servlet的三种实现方式 2.servl ...

  7. 表单工作流审核步骤抄送功能介绍

    表单工作流中,之前有抄送功能,因为无法保存设置人员的原因很少使用,最近研发组修复了此功能,现在做一下介绍: 1.在表单流程审批节点,有一个"转抄设置",点击后,弹出抄送设置框: 勾 ...

  8. jsp+servlet实现简单登录页面功能Demo

    小白新路历程-1 实现功能: 模拟简单登录功能,登录成功跳转新页面,登录失败在原登录界面提示登录失败信息 开发环境: eclipse Tomcat-8.0 预备知识: HTML标签,Servlet相关 ...

  9. Element-ui 步骤条功能拓展——动态生成步骤条

    需求:最近在做应急预案的vue页面,需要有上一步.下一步等功能,并且每一个预案都是一个简单流程 题外话:感觉使用vue+Element-ui来做,真的是方便很多很多,思路清晰,代码简洁. 如果是按照以 ...

最新文章

  1. 【排序】快速排序,C++实现
  2. 网络报错:“The connection is not for this device.”
  3. 20个必会的JavaScript面试题
  4. Python中由生成杨辉三角代码所思考的一些问题
  5. hdu 5157(manacher+前缀和+树状数组)
  6. wx:for-item循环数组失败
  7. java对mysql查询_如何利用java对mysql数据库进行增删改查
  8. python判断序列值横穿整个区间的次数
  9. ubuntu 18.04 ROS melodic 尝试 ROS CANOPEN 控制 AGV
  10. 今天起高考能查分了!这种方式超方便的
  11. net framework安装有什么影响_阳台护栏安装不当会造成什么影响
  12. Wannafly 每日一题 2016-12-26 KAOS 字典树
  13. java哪个软件编程好学吗_有什么好学的编程语言吗?
  14. PHP错误处理注册机制
  15. 第二章随机过程的基本知识part I
  16. 国内统一Android应用市场,最全最干净的安卓应用市场
  17. linux的串口驱动分析
  18. allennlp手动安装教程
  19. proDAD Mercalli 2020V5.0.461注册激活码版视频稳定防抖软件
  20. APTHunter——Windows安全日志排查好帮手

热门文章

  1. 文件上传函数(get post assert)
  2. java 子进程id,Java程序如何获得自己的进程ID?
  3. 哨兵2号波段_艾略特波段理论分析,A50和恒指走势的蛛丝马迹,完全暴露A股主力意图!...
  4. oracle为空替换为0_详解Oracle如何用Translate来统计字符出现的次数
  5. geth 转账_以太坊1 - 私有链部署、挖矿、转账
  6. c语言调试出错误怎么改,C语言调试常见错误及修改方法(附习题)
  7. ios8 定位问题解决思路
  8. matlab学习笔记之常用命令(一)
  9. Activiti学习(二)数据表结构
  10. CSS3选择器:nth-child和:nth-of-type之间的差异的那些事儿