2021-11-16

本文介绍了JavaWeb中的Servlet基础,包括Servlet的定义、web项目结构、Servlet的生命周期及其特征。通过示例展示了如何创建和配置Servlet,讨论了Servlet的单例多线程特性,并讲解了ServletConfig接口的作用。同时,文章提到了HttpServlet中的doGet()和doPost()方法,以及如何处理HTTP请求。
摘要由CSDN通过智能技术生成

文章目录
Java Web —— ——Servlet基础篇
servlet简介
一、什么是servlet?
web访问流程图:
编写第一个servlet
二、servlet的生命周期
1.servlet的生命周期
2.servlet的特征
三、ServletConfig接口
四、ServletContext接口简介
Servlet简介
创建javaee的web项目
在使用servlet之前我们需要先创建一个javaee的web项目,一个web项目通常包含下面一些文件:
src
web
WEB-INF
lib
classes
index.jsp

src:存放java源代码
web:存放静态资源和动态资源
WEB-INF:该目录下的所有文件无法从浏览器中直接访问
lib:存放相关的jar包
classes:存放编译后的class文件
index.jsp:web项目中默认访问的首页
一、什么是servlet?
servlet是一门用于开发动态web资源的技术,可以运行在Web服务器中的小型Java程序,有时也叫做服务器端的小应用程序,servlet是server applet两个单词的组合而成。servlet 可以通过 HTTP协议接收和响应来自 Web 客户端的请求。

servlet的语法跟JavaSE是一样的并且能够使用JavaSE中的API,要想创建一个servlet并使用的话可以分为以下几个步骤:

创建一个javaee的web项目
编写一个Java类,实现javax.servlet.Servlet接口,并重写该接口中的抽象方法
在web.xml文件中配置该servlet(如果使用注解方式的话,无需配置web.xml)
将该web项目部署到tomcat中并启动
编写Servlet
创建一个web项目,可以在创建项目时关联tomcat这样eclipse会把相关的serve let-api.jar包拷贝到项目中,在项目创建一个JAVA类,实现servlet接口并重写里面的方法。

Servlet创建好之后,需要在web_xml文件中进行配置,给servlet一个可以访问的uri地址

之后将该web项目部署到tomcat中,启动成功后访问:http://locahost:8080/07-01-servlet/hello
可以看到eclipse控制台中打印出了Hello Servlet
通过上面示例可以看出,servlet的需要部署在tomcat中才能运行,有时tomcat也被称为是servlet的容器。

二、servlet的生命周期
1.servlet的生命周期
Servlet 生命周期指的是,Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服
务的执行,及最终 Servlet 对象被销毁的整个过程。

2.servlet的特征
Servlet是单例多线程的,只创建一个servlet对象,但是每次请求都会起一个线程并在自己线程栈内存中执行service方法。
一个 Servlet 实例只会执行一次无参构造器与 init()方法,并且是在第一次访问时执行。
用户每提交一次对当前 Servlet 的请求,就会执行一次 service()方法。
一个 Servlet 实例只会执行一次 destroy()方法,在应用停止时执行。
由于 Servlet 是单例多线程的,所以为了保证其线程安全性,一般情况下是不建议在
Servlet类中定义可修改的成员变量,因为每个线程均可修改这个成员变量,会出现线程安全问题。
默认情况下,Servlet 在 Web 容器启动时是不会被实例化的。
tomcat启动时创建servlet实例

在tomcat启动时,默认不会创建servlet实例,如果想要让tomcat在启动时创建servlet实例的话,只需要在web.xml中添加load-on-startup标签即可

三、ServletConfig接口
ServletConfig接口简介

在 Servlet 接口的 init()方法中有一个参数 ServletConfig,这个参数类型是个接口,里面是一些 在 web.xml 中对当前 Servlet类的配置信息。Servlet 规范将Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。在tomcat调用 init()方法时,首先会将 web.xml 中当前 Servlet 类的配置信息封装为一个对象。这个对象的类型实现了 ServletConfig 接口, Web 容器会将这个对象传递给init()方法中的 ServletConfig 参数。
ServletConfig中的方法

getInitParameter(): 获取指定名称的初始化参数值。例如从下面的servlet中调用
getInitParameter(“userName”);方法会返回字符串"monkey1024"。
getInitParameterNames():获取当前 Servlet 所有的初始化参数名称。其返回值为枚举类型
Enumeration。
getServletName():获取当前 Servlet 的中指定的 Servlet名称。如下面中的 ServletName
为"configServlet"。
getServletContext():获取到当前 Servlet 的上下文对象
ServletContext,这是个非常重要的对象,将在下面详细介绍。

HttpServlet中的doGet()和doPost()方法
package cn.itcast.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class httpservlet extends javax.servlet.http.HttpServlet{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
System.out.println(“收到前端的get请求”);
}
protected void dopost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
doGet(request,response);
}

}

在这里插入代码片
1
编写一个form.html文件,在文件中编写提交方式为get和post方法

Insert title here 用户名:
密    码:
爱好: 唱歌 跳舞 足球

用户名:
密    码:
爱好: 唱歌 跳舞 足球
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值