java servlet 开发_Java之基于Servlet的Web开发简介
由于学习的过程中,接触到了这部分内容,所以特别的在这进行整理,分享给大家。
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开发简介相关推荐
- 基于Django的web开发(一)
基于Django的web开发(一) 微信关注公众号:夜寒信息 致力于为每一位用户免费提供更优质技术帮助与资源供给,感谢支持! 基于Django的web开发(一) 一.Django的安装及基本介绍 一. ...
- 基于Rust的Web开发,actix的基本使用
基于Rust的Web开发,actix的基本使用 rust-web 环境搭建 url路径参数传递 get请求参数传递 post请求表单参数传递 post请求Json参数传递 rust-web Rust语 ...
- Web开发与设计之Google兵器谱-Web开发与设计利器
Google 的使命是 Web,在 Google 眼中,未来的一切应用都将 Web 化,一直以来,Google 为 Web 开发与设计者推出了大量免费工具,让他们更好地创建,维护,改善他们的 Web ...
- java 天猫模拟登陆_基于servlet+filter+反射模拟实现天猫首页的后端
前言:为了深入web原理,本项目没有使用框架,主要描述了从请求到页面展现的思路,详情请见文末的具体项目 一.为什么要用filter?直接servlet实现不就行了 因为天猫这样的项目需要很多servl ...
- 【java项目学习笔记】基于servlet+jsp+jdbc的注册登录系统
目录 项目介绍 准备工作 前端实现 后端实现 项目介绍 实现效果: 首先进行注册,注册成功后自动跳转到登录界面,用先前注册的账号进行登录 注册成功和登录成功的信息会在后端控制台打印 用户注册的信息记录 ...
- java水印图片_JAVA实用案例之图片水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- stm32运行java虚拟机_windows下的基于Eclipse的STM32开发调试环境搭建
这段时间在玩STM32,但官方库的代码也确实是有点多,记忆力有点不太好了.突然就想起了以前用Eclipse的那个代码提示功能,谷歌了一段时间, (一)安装编译环境 1.下载和安装JAVA虚拟机 因为E ...
- 绝对干货:19个有用的基于云的Web开发工具
随着Web开发行业的快速发展,许多Web工具似乎简化了创建基于Web的应用程序的过程,并帮助开发人员更快的掌握. 在提供的众多工具中,有一些值得指出. Web开发人员的在线游乐场 Web应用程序开发包 ...
- java撞南墙:桌面应用与web开发
桌面应用 java桌面开发主要有javafx和swing,javafx只能在oraclejdk8中找到,在openjdk和oraclejdk11都看不到其踪影,导入javafx需要按照依赖比较麻烦,一 ...
最新文章
- CSS:link标签rel和media的解释(转)
- 【Linux】一步一步学Linux——command命令(226)
- BMS开发日记 - One day
- 【C语言】逗号运算符的使用举例
- c++椭圆最小二乘法原理_c++ 椭圆拟合之最小二乘法(图像处理)
- 程序员的时间管理哲学——打造自己的分时管理系统
- 『不再迷茫 - 正则表达式』JS正则要点梳理 持续更新
- 一个分组查询的SQL 常用算法(附源码可直接执行)
- html输入框只能输入整数,轻松让INPUT框只能输入整数
- 要做最快的男人,教你用Python写一个打字测试器测试你的打字速度~
- 细说 Java 中的浅克隆与深克隆
- ai条码插件免安装_AI条形码插件(含支持Illustrator cs6的条码脚本插件)
- excel保存快捷键_Excel新手必备的5大技巧,看看你会几个?(附26个超实用快捷键)
- 诗词格律[1] 诗词入门
- 光纤熔接操作步骤——详细图文光纤熔接教程
- r语言中怎样查看函数源代码
- SpringBoot 封装返回类报错:No converter found for return value of type
- 重温线性代数(3)——正交、投影
- 机器学习 —— 决策树
- 基于二级C语言的一些经典小程序