Servlet基础
-
Servlet技术简介
Servlet是一种独立于平台和协议的服务器端的java技术,可以用来动态的生成Web界面。Servlet具有非常好的可移植性、强大的功能、更少的投资、更高的效率、更好的安全性等特点
Servlet一般用来处理HTTP的请求用来返回一个响应,它能够处理的请求有doGet()、doPost()、service()等方法,在开发Servlet时可以直接继承javax.servlet.http.HttpServlet类
值得注意的是
Servlet需要在web.xml中配置(或者直接在Servlet类前添加@webServlet)
,即(映射Servlet的名字、配置Servlet类、初始化参数、进行安全配置、过滤器、监听器等)。Servlet不仅可以生产HTML脚本输出,还可以生产二进制表单进行输出 -
Servlet技术功能
(1)创建并返回一个包含基于客户请求性质的动态内容完整的HTML页面
(2)创建可嵌入的一部分的HTML页面到主HTML页面
(3)与其他服务器资源(包括数据库和基于java的应用程序)进行通信
(4)用于处理多个客户机处理连接,接收多个客户机的输入,并将结果传递到客户及上
(5)当允许单连接方式可以传递数据的情况下,在浏览器上打开applet的新连接,并保持打开状态;
当运行客户机与服务器简单、高效的执行 绘画的情况下,applet也可以启动客户浏览器和服务器之间的连接,可以定制协议通信
(6)将定制的处理提供给所有服务器的标准程序 - Servlet技术特点
-
Servlet技术带给程序猿最大的优势就是它可以处理客户端传来的HTTP请求,并返回一个响应。总的来说,Servlet具有如下特点
(1)高效
(2)方便
(3)跨平台
(4)功能强大
(5)灵活性和可扩展性
(6)共享数据
(7)安全
-
Servlet的生命周期
-
Servlet与JSP的区别
(1)编程方式不同
(2)Servlet必须在编译后才能执行
(3)运行速度不同 -
Servlet的代码结构
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 test
*/
@WebServlet("/test")
public class test extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public test() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//可编写使用request读取请求有关的信息和表单数据的代码
//可编写response指定的HTTP应答状态的代码和应答头的代码
PrintWriter out=response.getWriter();
//可编写out对象页面中输出信息的代码
}
}
Servlet常用接口和类
-
Servlet接口
javax.servlet包中的类与接口封装了一个抽象框架,建立请求和产生响应的组件(即Servlet),其中javax.servlet.Servlet是所有Java Servlet的基础接口 -
HttpServlet类
HttpServlet类存放在javax.servlet.http包中,是针对使用HTTP协议的Web服务器的Servlet类。HttpServlet类通过执行Servlet接口,能够提供HTTP协议的功能 -
ServletConfig接口
ServletConfig接口存放在javax.servlet包内,它是一个由Servlet容器使用的Servlet配置对象,用于在Servlet初始化时向他传递信息 -
HttpServletRequest接口
HttpServletRequest类存放在javax.servlet.http包内 -
HttpServletResponse接口
HttpServletResponse类存放在javax.servlet.http包内,它代表了对客户端的HTTP响应。HttpServletResponse接口给出了响应客户端的Servlet()方法。它允许Servlet设置内容长度和回应的MIME类型,并且提供输出流ServletOutoutStream -
GenericServlet类
GenericServlet类存在javax.servlet包中,它提供了对Servlet接口的基本实现,它是一个抽象类,它的service()方法是一个抽象方法
Servlet开发
-
Servlet的创建
创建一个Servlet通常涉及一下四个步骤
(1)继承HttpServlet抽象类
(2)重装适当的方法,如覆盖(或称为重写)doGet()方法或doPost()方法
(3)如果有HTTP通信可以获取该信息
(4)生成HTTP响应 -
Servlet的配置
(1)在WEB-INF文件夹下的web.xml文件中配置Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>VoteServlet</servlet-name>
<servlet-class>
dom.VoteServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>VoteServlet</servlet-name>
<url-pattern>/VoteServlet</url-pattern>
</servlet-mapping>
</web-app>
(2)采用注解配置Servlet
//在编写的Servlet类上方编写
@WebServlet(urlPatterns={"/映射地址"},asyncSupported=true|false,
loadOnStartup=-1,name="Servlet名称",displayName="显示名称",
initParam={@WebInitParam(name="username",value="值")})
public class Servlet extends HttpServlet {
...
版权声明:本文为qq_49326435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。