Servlet基础介绍

概述

  此javaweb基础学习笔记是基于尚硅谷发布的2022年javaweb教程做的笔记总结,后期在此基础上会添加新的内容。个人学习经验认为在学习过javase与数据库之后观看此视频内容学习javaweb大部分是可以理解的,不过javaweb学习内容确实比较广且细,所以想要深刻掌握需要对学习内容多进行巩固与总结,实践更能反映当下的掌握程度。
视频地址:javaweb教程

Servlet介绍

servlet=serve+applet
serve:服务器
applet:小程序
  含义是服务器端的小程序,在web应用中,servlet主要负责处理请求,协调调度的功能,其为web应用中的控制器。
生活中的例子

生活中的例子
     

对应web应用

对应web应用
   

具体实现细节:

在这里插入图片描述
  在整个Web应用中,Servlet主要负责处理请求、协调调度功能。我们可以把Servlet称为Web应用中的『控制器

从实践中了解servlet

  首先客户端向服务器请求add.html页面,服务器返回相应页面并在浏览器端进行显示,显示之后通过点击页面中的提交请求向服务器发送该请求,服务器端的Servlets在识别到请求之后会对请求进行处理。
在这里插入图片描述

1:建立add.html页面
  下图即为建立的html页面,得到其中form标签表示表单,用户点击添加提交时即将此表单数据到服务器。action即表示要发送的请求,服务器中的Servlet即根据请求名进行判断是否是它对应要处理的请求,method即为以何种方法发送请求,以post方法发送的请求都是一个表单结构数据,后续会介绍各种方法的区别。 在这里插入图片描述

2:建立HttpServlet类
  首先要创建httpServlet类,通过实现该类从而对发来的请求进行处理,由于该类属于一个抽象类,因此对其进行继承即可,具体实现如下所示。 在这里插入图片描述

在Servlet中使用dopost方法获取请求
     

  由于我是使用post方法进行请求的发送,因此我们需要在新建的AddServlet类中重写dopost方法来对相应的数据进行处理,该方法中的第一个形参即是客户端所发来的request请求,此时已经被封装成一个对象进行操作。通过其的一个getparameter()方法可以获取指定名称参数的数据。
在这里插入图片描述

获取相应的参数数据

3.建立映射关系
   当用户发送action=add的请求时,其实服务器端还不知道应该由那个Servlet类对请求进行处理,因此需要添加映射关系,关系添加需要在web.xml中,具体如下:
在这里插入图片描述

在xml文件中设置请求与相应Servlet的映射关系
   

上述的逻辑关系是:
1:用户发请求:action=add
2:在url-pattern中找到/add,并确定其所映射的Servlet-name
3:在Servlet标签中寻找与该名字一致的servelt
4:找到其所对应的类。
5:用户发送的是post请求(method=post),因此tomcat会执行该servlet类中的dopost方法。

4.结果显示
add.html页面填写数据后点击添加发送请求

页面填写数据后点击添加发送请求
   

5.问题
  当添加数据为英文字符或数字时控制台可以显示正确的数据,但是当添加中文字符时候会出现乱码,导致数据添加不正确,这种情况是要设置编码形式,防止中文乱码。

解决方法:
1:post方式下,设置编码,防止中文乱码。
在这里插入图片描述
2:Get方式下tomcat8及以上无需设置编码,以下则需要设置编码。
在这里插入图片描述
注意:两种方法设置编码一定都要在所有获取参数方法之前进行执行。

猜你喜欢

转载自blog.csdn.net/ccjjjjdff/article/details/129347583
今日推荐