JavaWeb-Servlet

文章目录

  • 一、JavaWeb中的三大组件
  • 二、JavaWeb请求响应模型
  • 三、开发Servlet的步骤
  • 四、Servlet中其他对象
    • 1、ServletConfig
    • 2、ServletRequest
    • 3、ServletResponse
  • 五、前端发送请求的方式
  • 六、Servlet默认创建时间

一、JavaWeb中的三大组件

1Servlet  接收用户请求并处理最后响应的接口
2Filter   过滤器,拦截请求
3Listener  监听器,监听某一行为,只要用户触发这一行为就自动执行指定的代码

二、JavaWeb请求响应模型

请求包括:请求头、请求体(get没有post有)
响应包括:响应头、响应体(给服务器的数据,又叫响应正文)
JavaWeb-Servlet_第1张图片


三、开发Servlet的步骤

1、第一步:编写Servlet类,编写用户请求的逻辑代码

有三种编写Servlet类的方法,在开发中最常用的是第三种

  • 第一种–实现Servlet接口 (生命周期)
重写所有的方法
更能够清晰的了解Servlet的生命周期
	1 Servlet在第一次请求时被创建,由Tomcat创建
	2 调用init()方法,又叫生命周期方法,由Tomcat调用,在Servlet创建之后,只调用一次
	3 用户每请求一次ServletTomcat都会调用service()方法
	4Tomcat服务器关闭之前销毁它创建的所有对象,包含创建的Servlet,在Servlet销毁之前调用destroy()方法,
	只调用一次,释放资源
  • 第二种–继承javax.Servlet.Genericservlet抽象类
只需要重写service()方法
  • 第三种–实现javax.Servlet.Genericservlet.HttpServlet抽象类
重写该抽象类的doGet()doPost()方法

2、第二步:在web.xml中进行配置
JavaWeb-Servlet_第2张图片
补充:

这里的url-pattern类似于value,为了避免每创建一个Servlet类就得在该配置文件中配置一次,这里提供了一个更加简洁的方法
在每一个Servlet类的前面加入@WebServlet()注解
@WebServlet(name="DServlet" , urlPatterns="/DServlet")
如果URLPatterns与value相等则可以用value替换URLPatterns
@WebServlet(value="/DServlet")
如果括号内只有value属性则value可以省略
@WebServlet("/DServlet")

四、Servlet中其他对象

1、ServletConfig

对于Servlet配置,由Tomcat创建
Enumeration方法:
	hasMoreElements() 判断集合中是否还存在元素
	nextElement() 拿到存在的元素

方法:
JavaWeb-Servlet_第3张图片

2、ServletRequest

请求对象Tomcat创建
核心方法:获取请求参数
	getParameter(String name) 根据请求参数的name拿到请求参数的值

3、ServletResponse

方法:(只列举一个,在api文档中还有更多)
	getWriter() 得到字符响应输出流,服务器通过输出流将数据写到客户端的浏览器页面
	该方法下还有print()方法可以打印html标签
	里面可以写js脚本

五、前端发送请求的方式

1、from的action   method决定是post还是get
2、超链接  只能是get请求
3、浏览器的地址栏输入url   只能是get
4、通过js发送ajax请求   可以是get也可以是post

请求方式分为get和post(现阶段是两种)

get请求:请求参数通过url传递,请求参数:url?k1=v1&k2=v2  不安全,只能传递字符串
post请求:请求参数通过请求体传递,安全性高 可以对数据进行加密,能够传递字符串,也能够传递文件

六、Servlet默认创建时间

第一次请求,该Servlet才创建,由于第一次请求消耗时间多一点所以叫做第一次惩罚,为了防止这次惩罚需要修改Servlet的时机,在web服务器启动的时候就创建Servlet

两种方法:
第一种:在web.xml中配置
JavaWeb-Servlet_第4张图片
第二种:在Servlet类最前面给定参数
在这里插入图片描述

你可能感兴趣的:(JavaWeb,servlet,java,tomcat)