javaweb——Servlet开发
一、Servlet简介
Servlet是sun公司提供的一门用于开发动态web资源的技术。
Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
1、编写一个Java类,实现servlet接口。
2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet
二、Servlet的运行过程
Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
三、Servlet调用图
四、在Eclipse中开发Servlet
在eclipse中新建一个web project工程,eclipse会自动创建下图所示目录结构:
4.1、Servlet接口实现类
Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。
HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。
4.2、通过Eclipse创建和编写Servlet
这样,我们就通过Eclipse帮我们创建好一个名字为ServletDemo1的Servlet,创建好的ServletDemo01里面会有如下代码:
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;
/**
* Servlet implementation class ServletDemo1
*/
@WebServlet("/ServletDemo1")
public class ServletDemo1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletDemo1() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
String[] str = request.getParameterValues("params");
System.out.println(str[0]);
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
javaweb——Servlet开发相关推荐
- Java-Web Servlet开发
一.Servlet概述 1.什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Ser ...
- JavaWeb——Servlet开发3
1.使用初始化参数配置应用程序 初始化参数的方式有两种 在Web.xml文件中使用<context-param>标签声明上下文初始化参数 <context-param>< ...
- JavaWeb——Servlet开发1
Java Servlet是运行在服务器端上的程序,Servlet是Java Servlet包中的一个接口,能够直接处理和相应客户端的请求,也可以将工作委托给应用的其他类. public interfa ...
- javaweb学习总结(五)——Servlet开发(一)
http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其 ...
- javaweb学习总结(五):Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- javaweb基于JSP+Servlet开发水费管理系统+论文 大作业 毕业设计
基于JSP+Servlet开发水费管理系统+论文(大作业/毕业设计) 开发环境: Windows操作系统 开发工具:MyEclipse+Jdk+Tomcat+SQLServer数据库 运行效果图: ...
- javaweb基于JSP+Servlet开发大数据与应用专业企业门户网站源码 课程设计 大作业
基于JSP+Servlet开发大数据与应用专业企业门户网站:(大作业/课程设计) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: ...
- javaweb基于JSP+Servlet开发药店(私人诊所)管理系统设计与实现源码+论文 +视频讲解 毕业设计
基于JSP+Servlet开发私人诊所(药店)管理系统设计与实现+论文:(毕业设计/课程设计) 开发工具: MyEclipse+Jdk+Tomcat+SQLServer数据库 运行效果图 基于JSP+ ...
- javaweb基于JSP+Servlet开发在线个人理财系统+论文 课程设计 大作业源码
基于JSP+Servlet开发在线个人理财系统+论文(大作业/毕业设计) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+Tomcat+SQLServer数据库 运行效果图 ...
最新文章
- gDebugger 3.1.1 原版+破解
- C#创建MQTT客户端接收服务器信息
- 大数据与智能算法(三-集疏运应用)-SMU在线学习笔记
- 一个插排引发的设计思想 (一) 观察者模式
- Servlet的调试
- 股权证明pos记账权是根据不同节点_中币(ZB)说真的,区块链第四期:关于ETH2.0,你需要了解的——PoS...
- airflow 進行後端大數據中ETL處理(草稿)
- CVPR 2021 目标检测、跟踪和姿态估计最新进展分享
- Redis 实战指南
- 【机器学习基础】正规方程法(Normal equation)(正则化和非正则化)——吴恩达课程笔记
- ubuntu linux ftp命令的使用
- c语言计算机结题报告怎么写,结题报告格式及如何写结题报告
- PowerShell复制粘贴快捷键
- chrome无痕模式可访问但正常模式访问不了
- [JSOI2016]扭动的回文串
- 在华为HG255D路由器上刷了OpenWRT,实现了多拨,下载速度超快
- JetBrains IDE全新UI预览版来了,要做简洁与强大兼顾的IDE
- 幸福 兴趣 工作 心态
- PGS,史上最大的超级玛丽来了
- 我叫mt php,我叫mt各种节点详细总结 新手快速MAX