Servlet知识点总结

Servlet

访问web资源路径
项目名称:myweb
资源文件:demo
http://localhost:8000/myweb/demo

http:协议
localhost:本机
8000:Tomcat服务器端口
Myweb:项目名称
Demo:资源名称

访问web资源详细流程
1.http协议:使用浏览器访问
2.localhost:确定访问资源所在的计算机位置
3.8000:确定访问资源所在的软件
4.Myweb:确定项目
5.Demo:资源名称

HTTP协议
如果没有HTTP协议:
每一个浏览器都有自己的数据传输格式

http协议:统一数据传输格式

浏览器向服务器拿数据:请求
服务器向浏览器发送数据:响应

HTTP1.1:浏览器发送请求到服务器,并且不会断开连接
HTTP1.0:浏览器只会发送一次请求到服务器,立马断开连接

状态代码:
200:请求成功,响应成功
404:请求路径错误
500:服务器端错误

请求方式
Get、post

HTTPServletRequest:请求对象
负责保存请求时发送的数据

Get
GET /JavaEe/Demo1 HTTP/1.1---------请求行
Host: localhost:8080---------------请求头
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/JavaEe/Servlet1.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1

1.请求行
2.请求头

缺陷:
1.不安全
2.发送数据大小有限制

因为请求参数通过请求行发送的

Form表单:get/post
A标签:get
通过地址栏访问:get

Post

POST /JavaEe/Demo1 HTTP/1.1---------请求行
Host: localhost:8080---------------请求头
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/JavaEe/Servlet1.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
----空格
Username=guangtoudsb&password=dsb ----实体内容

特点:
1.数据安全
2.对数据大小不限制

Get和post的区别:
Get:
1.数据不安全
2.通过请求行发送数据
3.对数据大小有限制

Post:
1.数据安全
2.通过实体内容发送
3.对数据大小无限制

Servlet详细介绍
含义:动态资源(运行在服务器端的程序)
一个类继承了HTTPServlet,那么该类我们叫它servlet

作用:
1.接收数据

Servlet中的方法
1.构造器()-----构造器
2.init()--------初始化
3.service()-----服务
4.destroy()-----销毁
5.doGet()-----专门处理get请求方式
6.doPost()----专门处理post请求方式

不管访问多少次servlet(动态资源),构造器和init方法只会执行一次,而且是第一次执行

Servlet生命周期
1.用户在浏览器中输入url地址访问资源文件
2.服务器接收到url,进入到该项目的web.xml中
3.在web.xml中进行url-pattern和访问资源名称进行匹配
4.通过url-pattern获取对应的servlet-name
5.通过servlet-name匹配servlet标签中servlet-name
6.通过servlet-name获取对应的servlet-class
7.服务器创建servlet对象
8.服务器调用构造器
9.服务器调用init方法
10.服务器调用service方法,根据请求方式调用doGet、doPost
11.服务器响应数据到浏览器
12.服务器调用销毁方法

创建对象提前

demo2
cn.com.hc.demo.Demo_2

1

demo2 /demo2

问题:
1.web.xm文件谁加载的?
答:Tomcat服务器加载的
2.Servlet对象谁创建的?
答:Tomcat服务器创建的
3.Servlet中的方法谁调用的?
答:Tomcat服务器调用的
4.Servlet容器是什么?
答:Tomcat服务器
5.为什么叫做Servlet容器?
答:因为Tomcat服务器中有一个内存专门存储servlet对象
当第一次发送请求时,在内存中进行查询是否为对应的Servlet对象,如果有,直接使用,没有创建

HttpServletRequest
请求对象
浏览器发送数据给服务器
作用:负责保存请求参数

方法:
1.getParameter(“参数名”) 根据参数名获取数据
2.getparameterValues(“参数名”) 根据参数名获取数据数组

请求乱码
req.setCharacterEncoding(“utf-8”);

HTTPServletResponse
响应对象(服务器发送数据给浏览器)

方法:
GetWrite() 字符流
GetoutputStream() 字节流

响应格式
HTTP1.1 200
1.Content-Length:
14
2.Date:
Tue, 03 Sep 2019 03:40:01 GMT

响应乱码
//设置响应编码集
response.setContentType(“text/html;charset=utf-8”);

请求转发
Request.getRequestDispatcher(“servlet”).forward(请求对象,响应对象)
Request.setAttribute(“参数名”,”参数值”)
Request.getAttribute(“参数名”)
注意:
1.请求转发时必须把请求对象转发出去
2.请求转发只能转发给动态资源(servlet、jsp)
3.请求转发时,可以传递数据
4.浏览器只发送了一次请求

响应重定向

response.sendRedirect(“duminjun”);

注意:
1.浏览器发送了多次请求
2.响应重定向可以响应任何资源(静态、动态)
3.响应过程中不能传递数据

URL-Pattern
http://localhost:8000/JavaWeb/demo
/名称
通配符
/* 匹配所有

伪静态
*.html
*.do
*.action

/名称.html
/名称.do
/名称.action

窄化路径
/名称/名称

ServletConfig
配置对象
注意:
每一个servlet都有自己的servletconfig
对应的是web.xml里面的servlet配置

需求:
给servlet设置初始化属性值

s1
cn.com.hc.servlet.Servlet_1

<!--配置初始化值-->
<init-param>
    <param-name>password</param-name>
    <param-value>940419</param-value>
</init-param>
s1 /s1

在servlet中获取属性值
//根据属性名获取属性值
//获取当前servlet的servletconfig对象
ServletConfig servletConfig=this.getServletConfig();
String password=servletConfig.getInitParameter(“password”);
System.out.println(password);

ServletContext
上下文对象
注意:一个项目中只有一个ServletContext
方法:
1.getAttribute(属性名) 获取属性值
2.setAttribute(属性名,属性值) 设置属性值
3.getRealPath(“/”) 获取绝对路径
4.getContextPath() 获取相对路径

//设置属性值到上下文对象中
//获取上下文对象
ServletContext servletContext=this.getServletContext();
servletContext.setAttribute(“password”,“940419”);
response.getWriter().write((String) servletContext.getAttribute(“password”));

域对象:具备在动态资源之间传递数据的功能
1.request 请求对象(利用请求转发)
2.ServletContext 上下文对象(一个项目中只有一个该对象)
3.Session 会话对象

Session
会话跟踪技术
保存的是用户和服务器之间沟通的一些重要信息
一次会话:
浏览器与服务器之间一直在沟通,没有断开
浏览器发送多次请求

方法:
getSession() 当session对象不存在时,创建一个新的
getSession(true) 当session对象不存在时,创建一个新的
getSession(false) 当session对象不存在时,不创建
getAttribute(属性名) 获取属性
setAttribute(属性名,属性值) 设置属性
setMaxInactiveInterval(时间) 设置有效期
通过配置文件


1

Session:
1.保存到服务器中
2.建议隐私信息保存到session中
3.Session对象不要创建太多,影响服务器性能
4.共享session对象(redis)

Cookie:
1.保存到浏览器中
2.公开信息建议保存cookie

单点登录

Cookie
添加
//Cookie
//创建cookie对象时直接设置属性(添加)
Cookie cookie=new Cookie(“password”,“940419”);
//把cookie对象添加到浏览器中
response.addCookie(cookie);

删除
//Cookie
//创建cookie对象时直接设置属性(添加)
Cookie cookie=new Cookie(“password”,“940419”);
//有效期 0
cookie.setMaxAge(0);

//把cookie对象添加到浏览器中
response.addCookie(cookie);

修改
//Cookie
//创建cookie对象时直接设置属性(添加)
Cookie cookie=new Cookie(“password”,“940419”);

//修改
cookie.setValue(“12345”);

//把cookie对象添加到浏览器中
response.addCookie(cookie);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值