10.Servlet简单介绍
2024-09-05 13:25:58
1.什么是Servlet
* Servlet是javaweb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet种通常需要:
* 接受请求数据
* 处理请求
* 完成响应
* 例如客户端发出登入请求,或则输出注册请求,这些请求都应该有Servlet来完成处理,Servlet需要我们自己来编写,每个Servlet必须实现javax.servlet.Servlet接口
* Servlet的特性
* 单列:一个类只有一个对象;当然可能存在多个Servlet类
* 线程不安全,所以它的效率是高的
注意:Servlet类由我们自己来写,但是对象由服务器来创建,并且由服务器来调用相应的方法
2.实现Servlet的三种方式
* 实现 java.servlet.Servlet接口
* 继承 java.servlet.GenericServlet类
* 继承 java.servlet.http.HttpServlet类
通常我们会继承HttpServlet类来完成我们的Servlet
3.下面是实现java.servlet.Servlet接口,实现的几个方法,并对这几个方法简单的介绍
package 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 Demo1 implements Servlet {
/*
* 它是生命周期方法
* 它会在Servlet被销毁之前调用,并且只会调用一次
* 这个方法一般不会用,如果用,这个方法会释放一些绑定的非内存资源(io流,数据库连接等等)
*/
@Override
public void destroy() { } @Override
public ServletConfig getServletConfig() {
return null;
} /*
* 获取Servlet的信息,这个方法几乎没用
*/
@Override
public String getServletInfo() {
return null;
} /*
* 它是生命周期方法
* 它会在Servlet对象创建之后马上执行,并且只执行一次
*/
@Override
public void init(ServletConfig servletconfig) throws ServletException { } /*
* 它是生命周期方法
* 它会被调用多次
* 每次处理请求都会调用这个方法
*/
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { } }
4.如何让浏览器访问Servlet(这个需要在web.xml中对Servlet进行配置)
* 给Servle指定一个Servlet路径(让Servlet与一个路径绑定在一起)
* 浏览器访问Servlet路径
* web.xml配置
<?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"
version="3.0">
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xxx</servlet-name>
<url-pattern>/Demo1</url-pattern>
</servlet-mapping>
</web-app>
最新文章
- 树链剖分+线段树 CF 593D Happy Tree Party(快乐树聚会)
- iOS_XCode7_Launch Image 的初使用
- 【linux】jdk安装
- 通过mysql命令行理解mysql
- linux C++ 共享库导出类
- 关于Guid
- javaweb回顾第六篇谈一谈Servlet线程安全问题
- etcd学习记录
- OPENCV3.1+VS 坑我笔记!
- 从3dmax中导入模型到UDK Editor(供个人备忘)
- Science发表的超赞聚类算法
- Kruscal(最小生成树)算法模版
- pyCharm django 中新加app
- 免app下载笔趣阁小说
- Docker:镜像构建与进入容器总结
- 2019.01.13 bzoj4538: [Hnoi2016]网络(树链剖分)
- 怎么把excel表格内的数据导入数据库?
- Centos 添加永久路由
- OpenGL学习--开发环境
- linux 下面压缩,解压.rar文件以及rar,unrar实例