【JavaWeb】之Servlet
一、Servlet简介
1.1 什么是Servlet(server applet): 是一种独立于平台和协议的服务器端Java应用程序,通过Servlet可以生成动态web页面。还可以在服务器端对客户端的请求进行处理,控制程序的执行。
作用:交互式的浏览和更新数据,并生成动态的页面内容展示。
Servlet处理web请求过程:

- 服务器接受从客户端发送的请求
- 服务器将请求信息发送至Servlet
- Servlet经处理后,生成响应的内容
- 服务器将响应的内容返回客户端
jsp和Servlet关系:Jsp被web容器解析时,最终会编译成一个Servlet类
1.2 Servlet API
| 名称 | 说明 | 包名 |
| Servlet接口 | Java Servlet的基础接口,定义类Servlet必须实现的方法 | javax.srevlet |
| GenericServlet类 | 继承自Servlet接口,属于通用的、不依赖于协议的Servlet | javax.srevlet |
| HttpServlet类 | 继承自GenericServlet类,是在其基础上拓展了HTTP协议的Servlet | javax.srevlet.http |
| HttpServletRequest接口 | 继承自ServletRequest接口,用于获取请求数据的读取 | javax.srevlet.http |
| HttpServletResponse接口 | 继承自ServletResponse接口,用于返回响应数据 | javax.srevlet.http |
1.3 Servlet生命周期
Servlet生命周期:Servlet从创建到销毁的过程。
Servlet容器:用来装载Servlet对象的一种容器,是负责管理Servlet的一类组件。
包括一下几个环节:

1.加载和实例化。
Servlet容器负责加载和实例化Servlet,当客户端发送一个请求时,容器查找是否存在对应的Servlet实例,没有则创建一个,有则取出该实例来响应请求
2.初始化。
容器完成Servlet实例化后,容器将调用Servlet的init()方法进行初始化,初始化的目的是让Servlet对象在处理客户端请求前完成一些初始化工作,如设置数据库连接参数、建立JDBC连接,或者建立对其他资源的引用。init()方法在java.servlet.Servlet接口中定义。(对于每一个Servlet实例,init()方法只被调用一次)
3.提供服务,请求处理。
Servlet被初始化后,就处于能响应请求的就绪状态。当Servlet容器接收到客户端请求时,调用Servlet的service()方法处理客户端请求。Servlet实例通过ServletRequest对象获得客户端的请求。通过ServletResponse对象的方法设置响应信息。
4.销毁。
容器判断一个Servlet是否应当被释放时(容器关闭或需要回收资源),容器就会调用Servlet的destroy()方法。destroy()方法知名哪些资源可以被系统回收,而不是由destroy()方法直接进行回收。
二、Servlet应用
2.1 创建Servlet三种方式
- 实现Servlet接口
- 继承GenericServlet类
- 继承HttpServlet类
package myproject; import java.io.IOException; import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class MyServlet extends HttpServlet{
protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
System.out.println("调用doGet方法");
} protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
System.out.println("调用doPost方法");
} public void destroy(){
System.out.println("Servlet 被销毁");
} public void init(ServletConfig config)throws ServletException{
System.out.println("Servlet 初始化");
String initParam = config.getInitParameter("charSetConfig");
System.out.println(initParam);
}
}
2.2 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" id="WebApp_ID" version="3.0">
<display-name>myproject</display-name> <servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>myproject.MyServlet</servlet-class>
<init-param>
<param-name>charSetContent</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<welcome-file-list> <welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
web.xml常用的<url-pattern>设置有3中形式
- <url-pattern>/xxx</url-pattern>。精确匹配,例如:<url-pattern>/helloserlvet</url-pattern>
- <url-pattern>/xxx/*</url-pattern>。匹配路径,如果没有精确匹配,对/xxx/路径的说有请求将由该Servlet处理,例如:<url-pattern> /helloservlet/*</url-pattern>
- <url-pattern>*.do</url-pattern>。如果没哦有精确匹配和路径匹配,则对所有的.do扩展名的请求将由该Servlet处理
运行:浏览器输入http://localhost:8080/myproject/test
控制台:

【JavaWeb】之Servlet的更多相关文章
- JavaWeb学习——Servlet相关的接口和类
JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...
- JavaWeb之Servlet入门(二)
1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...
- JavaWeb学习--Servlet认识
Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种请 ...
- IDEA新建javaWeb以及Servlet简单实现
刚开始用IDEA开发,还不太熟悉,因此写一个教程,加深印象 1.新建一个Web项目 两种方法:java 和 Java Enterprise(推荐) 第一种)通过Java工程创建,这个方法需要手动导入T ...
- Intellij IDEA创建javaWeb以及Servlet简单实现
1.创建web工程 File --> New --> Project...
- javaweb之servlet 全解
①Servlet概述 ⑴什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求, 服务器会把接收到的请求交给Servlet来处理,在Serv ...
- JavaWeb学习—Servlet
1.什么是Servlet Servlet是一个继承HttpServlet类的Java类 Servlet必须部署在web服务器端,用来处理客户端的请求 2.Servlet运行过程 Web Client ...
- JavaWeb之Servlet总结
今天上班居然迟到了,昨天失眠了,看完吐槽大会实在不知道做些什么,刚好朋友给我发了两个JavaWeb的练习项目,自己就又研究了下,三四点才睡,可能周日白天睡的太多了,早上醒来已经九点多了,立马刷牙洗脸头 ...
- javaWEB之Servlet
Servlet 1. 什么是Servlet * Servlet是JavaWeb三大组件之一(Servlet.Filter.Listener) * Servlet是用来处理客户端请求的动态资源 * ...
- Intellijidea建javaWeb以及Servlet简单实现
一.创建并设置javaweb工程1.创建javaweb工程File --> New --> Project... 点击Project后出现如下界面,选择Java Enterprise,选中 ...
随机推荐
- 【Ansible】记一次技术博客害死人的经历——ansible模板变量注入探究
风和日丽,夏天的北京湿热并举,睁不开的眼睛里,横竖都看着是“吃人”. 带薪学习的日子不好过,要在几天内迅速掌握导师下发要求学习的技能,看着以前一起蹲IT坑的同事人来人往,用隔壁同性黄同学的话来说,就是 ...
- php调用shell的方法
一.配置 查看php.ini中配置是否打开安全模式,主要是以下三个地方safe_mode = (这个如果为off下面两个就不用管了)disable_functions = safe_mode_exe ...
- [Python3] 039 语法调试
目录 语法调试 1. 调试技术 2. pdb 调试 插一个 gdb 3.Pycharm 调试 4. 单元测试 语法调试 1. 调试技术 调试流程 单元测试 → 集成测试 → 交测试部 分类: 静态调试 ...
- PTA(Basic Level)1077.互评成绩计算
在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平 ...
- 小记---------CDH版大数据组件--clouderManager UI界面
启动 /opt/cm-5.14.0/etc/init.d/clouder-scm-server start /opt/cm-5.14.0/etc/init.d/clouder-scm-agent st ...
- Luogu P3810 【模板】三维偏序(陌上花开)(CDQ分治)
题目 以三维偏序为例来讲一下CDQ分治. CDQ的本质就是把一个序列分成两段,计算左边对右边的贡献,然后分治. 不过一般都是先分治到底再从下往上算,这样可以先归并再算. 比如这道题,我们先按第一维排序 ...
- git使用技巧集合(持续更新中)
git使用技巧集合(持续更新中) 在团队协作中,git.svn等工具是非常重要的,在此只记录一些git使用过程中遇到的问题以及解决方法,并且会持续更新. 1.git commit之后,还没push,如 ...
- Spring Cloud Gateway真的有那么差吗?
动机 已经不止一次看到"Spring Cloud Gateway性能比Zuul更差"的言论了,不少人人云亦云,来问我,既然如此,那Spring官方还开发Spring Cloud G ...
- c# ListView 简单操作
1. 添加数据 listView1.Items.Clear(); for (int i = 0; i < 50; i++) { ListViewItem lv = new ListViewIte ...
- centos配置mutt和msmtp发送邮件
一.安装mutt yum install mutt -y 二.配置mutt vim /etc/Muttrc 在里面找到下面几行,并将内容修改为你自己的内容(下面几行分布在不同位置,请耐心查找,记得去掉 ...