由于学习的过程中,接触到了这部分内容,所以特别的在这进行整理,分享给大家。

1、定义

Servlet是Java Servlet的简称,称为小服务程序或服务连接器;

2、原理

从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。Servlet是Java

Servlet API开发的一种Java类,这些API被包含在javax.Servlet和javax.Servlet.http这两个包中。Servlet程序在服务器端运行,动态地生成Web页面。

3、优点

与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,具有更好的可移植性,更加高效。

4、JSP与Servlet的关系

可以说JSP的实现是基于Servlet的,当JSP容器接到一个JSP页面请求之后,首先会判断与JSP文件相对应的Servlet类的名字

①如果不存在或者比较陈旧,那么容器就会重新创建一个等价的Servlet类并且进行编译。

②如果存在的话,那么服务器就会编译Servlet类,并且自动加载形成Servlet实例,并且将执行结果返回到客户端。

5、Servlet的生命周期

①public voidinit() throws ServletException {    }

//初始化,init方法只调用被一次。它在第一次创建Servlet时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化。

②public voiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    }

//对Get方法请求响应服务,GET请求来自于一个URL的正常请求,或者来自于一个未指定METHOD的HTML表单,它由doGet()方法处理。

③    public voiddoPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    }

//对Post方法请求响应服务,POST请求来自于一个特别指定了METHOD为POST的HTML表单,它由doPost()方法处理。

④public voiddestroy(){    }

//销毁,destroy()方法只会被调用一次,在Servlet生命周期结束时被调用。destroy()方法可以让您的Servlet关闭数据库连接、停止后台线程。

6、Web.xml配置

一个Tomcat工程中最重要的配置文件。

web.xml没有其实也可以——————只要你确定你的项目里面不需要任何过滤器、监听器、Servlet等等。

[code] //web-app定义该文档的根元素。

firstServlet

//用来定义servlet的名称,该名称在整个应用中必须是惟一的。

servlet.HelloServlet

//用来指定servlet的完全限定的名称。

firstServlet

//Servlet的名字,唯一性和一致性,与元素中声明的名字一致。

/hello

//指定相对于Servlet的URL的路径。该路径相对于web应用程序上下文的根路径。

//将URL模式映射到某个Servlet,即该Servlet处理的URL。

7、Servlet的主要用途——处理客户请求与响应

HttpServletRequest接口-------------javax.servlet.http.HttpServletRequest接口类型的对象对应JSP中的request内置对象。

常用方法:

[code]

public String getParameter(String param);

//获得客户机请求参数,获取指定名称的参数值

public String[] getParameterValues(String param);

//获取指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。

public void setAttribute(String attname,Object o);

//在JSP内置对象session和request都有这个方法,这个方法作用就是保存数据,然后还可以用getAttribute方法来取出。

public Object getAttribute(String attname);

//取数据

HttpResponse接口---------javax.servlet.http.HttpResponse接口类型的对象对应JSP中的response内置对象。

常用方法:

[code]public void setContentType(String contentType);

//在响应中可以表明内容格式和长短。

public void sendRedirect(String url);

//发送一个临时的重定向响应到客户端,让客户端访问新的URL。

//如果指定的位置是相对URL,Servlet容器在发送响应到客户端之前,必须将相对URL转换为绝对URL。

/如果响应已经被提交,这个方法将抛出IllegalStateException异常。

ServletConfig接口--------------javax.servlet.ServletConfig接口类型的对象对应JSP中的config内置对象,用于在Servlet初始化时向Servlet传递一些信息。

定义:ServletConfig config = this.getServletConfig();

常用方法

[code]public String getInitParameter(String paraname);

//从web.xml中获取参数。

ServletContext接口-------------javax.servlet.ServletContext接口类型的对象对应JSP中的application内置对象。

定义:ServletContext app = this.getServletContext();

常用方法

[code]public void setAttribute(String attname, Object o);

//存放数据,例如:setAttribute("wg","666"),

//表示存放了一个属性名为wg,属性值为123的数据,

//如果再次调用该方法,并向容器中存放了相同的属性,最后存的会覆盖以前存的。

public Object getAttribute(String attname);

//取出指定属性名的数据,包括属性名和属性值,

//参过name指定的数据不存在,则本方法什么都不做。

关于Servlet的内容暂时介绍到这里!

谢谢大家!

java servlet 开发_Java之基于Servlet的Web开发简介相关推荐

  1. 基于Django的web开发(一)

    基于Django的web开发(一) 微信关注公众号:夜寒信息 致力于为每一位用户免费提供更优质技术帮助与资源供给,感谢支持! 基于Django的web开发(一) 一.Django的安装及基本介绍 一. ...

  2. 基于Rust的Web开发,actix的基本使用

    基于Rust的Web开发,actix的基本使用 rust-web 环境搭建 url路径参数传递 get请求参数传递 post请求表单参数传递 post请求Json参数传递 rust-web Rust语 ...

  3. Web开发与设计之Google兵器谱-Web开发与设计利器

    Google 的使命是 Web,在 Google 眼中,未来的一切应用都将 Web 化,一直以来,Google 为 Web 开发与设计者推出了大量免费工具,让他们更好地创建,维护,改善他们的 Web ...

  4. java 天猫模拟登陆_基于servlet+filter+反射模拟实现天猫首页的后端

    前言:为了深入web原理,本项目没有使用框架,主要描述了从请求到页面展现的思路,详情请见文末的具体项目 一.为什么要用filter?直接servlet实现不就行了 因为天猫这样的项目需要很多servl ...

  5. 【java项目学习笔记】基于servlet+jsp+jdbc的注册登录系统

    目录 项目介绍 准备工作 前端实现 后端实现 项目介绍 实现效果: 首先进行注册,注册成功后自动跳转到登录界面,用先前注册的账号进行登录 注册成功和登录成功的信息会在后端控制台打印 用户注册的信息记录 ...

  6. java水印图片_JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  7. stm32运行java虚拟机_windows下的基于Eclipse的STM32开发调试环境搭建

    这段时间在玩STM32,但官方库的代码也确实是有点多,记忆力有点不太好了.突然就想起了以前用Eclipse的那个代码提示功能,谷歌了一段时间, (一)安装编译环境 1.下载和安装JAVA虚拟机 因为E ...

  8. 绝对干货:19个有用的基于云的Web开发工具

    随着Web开发行业的快速发展,许多Web工具似乎简化了创建基于Web的应用程序的过程,并帮助开发人员更快的掌握. 在提供的众多工具中,有一些值得指出. Web开发人员的在线游乐场 Web应用程序开发包 ...

  9. java撞南墙:桌面应用与web开发

    桌面应用 java桌面开发主要有javafx和swing,javafx只能在oraclejdk8中找到,在openjdk和oraclejdk11都看不到其踪影,导入javafx需要按照依赖比较麻烦,一 ...

最新文章

  1. CSS:link标签rel和media的解释(转)
  2. 【Linux】一步一步学Linux——command命令(226)
  3. BMS开发日记 - One day
  4. 【C语言】逗号运算符的使用举例
  5. c++椭圆最小二乘法原理_c++ 椭圆拟合之最小二乘法(图像处理)
  6. 程序员的时间管理哲学——打造自己的分时管理系统
  7. 『不再迷茫 - 正则表达式』JS正则要点梳理 持续更新
  8. 一个分组查询的SQL 常用算法(附源码可直接执行)
  9. html输入框只能输入整数,轻松让INPUT框只能输入整数
  10. 要做最快的男人,教你用Python写一个打字测试器测试你的打字速度~
  11. 细说 Java 中的浅克隆与深克隆
  12. ai条码插件免安装_AI条形码插件(含支持Illustrator cs6的条码脚本插件)
  13. excel保存快捷键_Excel新手必备的5大技巧,看看你会几个?(附26个超实用快捷键)
  14. 诗词格律[1] 诗词入门
  15. 光纤熔接操作步骤——详细图文光纤熔接教程
  16. r语言中怎样查看函数源代码
  17. SpringBoot 封装返回类报错:No converter found for return value of type
  18. 重温线性代数(3)——正交、投影
  19. 机器学习 —— 决策树
  20. 基于二级C语言的一些经典小程序

热门文章

  1. 你的简历已经被机器人筛选了
  2. lintcode 627 最长回文串Python版本
  3. idea 注册码 实测可用
  4. 受疫情影响 AMD宣布退出CES线下展会
  5. 苹果隐私部门负责人:在iPhone上侧载应用会减少用户选择
  6. 哈啰出行赴美递交招股书:2020年营收60亿元 顺风车成新增长极
  7. 苹果汽车真是全自动驾驶?分析师称不要指望有方向盘
  8. FF官宣新CFO推进融资和产品交付 贾跃亭激动发声
  9. 美团电单车中标警用车采购项目,上千辆定制版警用电单车上线!
  10. iPhone 12无线充电模块曝光:AirPower有戏了!