Servlet详解(1) -基于XML方法

什么是Servlet?

Servlet是Java Web开发的基石,是与平台无关的服务器组件,它是运行在Servlet容器/Web应用服务器/Tomcat,负责与客户端进行通信。

Servlet的功能

(1)创建并返回基于客户请求的动态HTML页面
(2)与数据库进行通信
在这里插入图片描述
Servlet接收客户端的请求,并从数据库中找到对应的数据,然后再将数据传送到客户端

如何使用Servlet

Servlet本身就是一组接口,并且这一组接口由java提供,在javax.servlet包中。
在实际开发过程中,只需要自定义一个类,实现Servlet接口,这个类就具备了接收客户端请求以及做出响应的功能。

在IDEA中实现Servlet

(1)创建项目。Java的所有东西都是放置在src目录下的
在这里插入图片描述
(2)在src目录下新建一个包,在包里创建一个普通类MyServlet
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)在类MyServlet中实现Servlet接口中的五个抽象方法
加粗样式
方法1主要是做一些初始化功能
方法2主要用来获取Servlet的一些信息
方法3是核心,主要在这个方法里实现业务逻辑处理
方法4是返回一些信息
方法5是销毁作用
(4)重写方法3
在这里插入图片描述
(5)点击编译,编译成功后生成我们java代码的字节码文件
即MyServlet.class文件
在这里插入图片描述
此时,Servlet并不能直接访问java代码生成的class文件
需要进行映射才能进行访问
(6)添加映射
映射是在web.xml文件中添加的
在这里插入图片描述
在web.xml文件中添加两个标签
在这里插入图片描述
标签1:第一行代码中的Myservlet就是映射名称,第二行代码就是我们java代码编译生成的class文件
标签2:第一行代码中的Myservlet就是映射名称,与标签1中的名称保持一致,第二行代码就是我们在网页中的地址
(标签1中的第一行代码中的映射名称可以自定义,但必须与标签2中第一行代码中的映射名称保持一致。标签1中第二行代码中的class文件地址必须与实际项目中的地址相同,标签2中第二行代码中的信息可以自定义)
之前我们在浏览器网页中并不能直接访问java代码编译生成的class文件,这个时候可以通过上面的方法通过一个映射名称Myservlet将class文件和浏览器网页关联起来,只需要在浏览器网址中输入标签2中第二行代码的地址,就可以访问class文件

(6)点击编译,在打开的浏览器网页的地址中输入标签2中我们自定义的地址,点击回车访问
在这里插入图片描述
此时浏览器页面并没有任何信息,但是我们可以在IDEA中看到信息
在这里插入图片描述
为什么浏览器中没有信息,而IDEA中有信息呢?
这是因为我们在只在客户端发出了请求(输入了我们自定义的网址),后端也接收到了我们的请求(在IDEA中的信息显示),但是后端只是接收到了请求,并没有对这个请求做出任何响应,因此浏览器页面是一片空白。
那怎样进行请求回应呢?
(7)做出回应
我们来看servlet接口中的第三个方法,也就是核心方法service()
在这里插入图片描述
这个方法接收两个参数,第一个就代表请求的意思,第二个就代表响应的意思
因此我们可以通过servletResponse.getWriter()方法创建一个对象,并调用write()方法做出请求回应
在这里插入图片描述
(8)重新编译运行
再打开的浏览器页面地址中再次输入我们之前自定义的地址,回车即可
在这里插入图片描述

乱码问题

我们输出的信息是中文时,在浏览器上可能看到的是以下情况
在这里插入图片描述
在这里插入图片描述
这个时候我们可以通过添加一行代码即可
在这里插入图片描述
在这里插入图片描述

参数servletRequest

我们发现在上面的service方法中,只用到了回应参数servletResponse,并没有用到请求参数servletRequest,那么怎样使用呢?
(1)首先在浏览器页面的地址中输入:
在这里插入图片描述
问号?跟着一对key-value值
(2)在service方法中调用servletRequest的getParameter方法,将上一步中key值作为参数传递进去,并定义一个String变量接收key对应的value值
在这里插入图片描述
(3)重新编译运行,在浏览器页面地址中中输入(1)中的信息,回车,在IDEA中
在这里插入图片描述

上面我们实现了Servlet最基本的功能

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值