博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet知识点总结
阅读量:5262 次
发布时间:2019-06-14

本文共 2740 字,大约阅读时间需要 9 分钟。

servlet:

运行在服务器端的小程序
Servlet是一个接口,定义自己的servlet实现接口

入门:
1、创建一个Myservlet 实现servlet接口 复写方法
2、在init(),service(),destroy()方法中添加输出语句
3、在web.xml中注册我们创建的servlet

<servlet>

<servlet-name>MyServlet</servlet-name>
<servlet-class>com.xmcc.servlet.MyServlet</servlet-class>
</servlet>

<servlet-mapping>

<servlet-name>MyServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>

servlet的生命周期:

init(), 第一次访问servlet的时候调用(初始化)
service(),每一个访问都会调用,(处理请求和响应)
destroy(),服务器关闭

执行原理:

1、当服务器接收到客户端浏览器的请求后,会解析URL路径,获取到访问的Servlet的资源路径
2、拿到资源路径通过web.xml文件进行查找,是否有对应的url-pattern
3、如果有,则查找对应的servlet-class 获取全路径名
4、tomcat会将字节码文件加载进内容,并创建对象
5、调用方法

注意:通过web.xml方式配置servlet是web3.0版本以前 常用的方式
那么在3.0版本后,使用注解的方式 代替 配置文件

servlet注解方式:

@WebServlet(value="/myServlet1",name = "MyServlet1")

String name() default ""; 名字

String[] value() default {}; 访问路径

String[] urlPatterns() default {}; 访问路径

int loadOnStartup() default -1; 启动时机

WebInitParam[] initParams() default {}; 初始化参数

loadOnStartup:servlet初始化时机
默认是第一次访问servlet的时候初始化 这个时候loadOnStartup值为-1

servlet重要的对象:

ServletConfig:servlet配置对象
1、获取取当前servlet的名字
2、获取当前servlet的初始化数据
3、获取servletContext对象
(域对象)ServletContext: 上下文对象(全局管理者,整个项目共享的对象)
每个web项目启动的时候,都会创建一个servletContext对象,
servletContext会随着web的启动而创建 销毁则销毁

1、数据共享

setAttribute()
getAttribute()
removeAttribute()
2、获取文件的真实路径
getRealPath()
3、以流的形式返回文件
getResourceAsStream()
4、获取web的初始化参数
在web.xml的根目录下面进行配置
<context-param>
<param-name></param-name>
<param-value></param-value>
</context-param>
context.getInitParameter()

request:请求:处理请求相关

response:响应:处理响应相关

什么是请求

浏览器,访问服务器,
什么是响应
服务器,反馈浏览器

request:域对象(一次请求)

getParameter():获取单个数据(input框)
getParameterValues();获取多个数据(checkedbox)
getParameterMap():获取所有的参数
key:name值
value:name对应的value值

获取请求头信息:

request.getHeader("")
获取请求方式:
request.getMethod();
获取项目路径:
getContextPath();

//请求转发:

request.getRequestDispatcher("/hello.html").forward(request,response );
地址栏不变,页面发生跳转
如果发生了请求转发,还是一次请求

路径相关;

内部路径;直接写资源
相对:./ ../
绝对:
带主机和协议的路径(访问站外资源)
不带主机和协议的路径(最常用的)
/项目名/资源路径

response对象:
响应码(状态码):200 成功
404:访问的资源不存在
500:服务器代码有问题
304:读缓存
302:重定向

常用方法:

//设置编码
response.setContentType("text/html;charset=utf-8");
//回写数据
response.getWriter().print("我已收到请求!!!");

getOutputStream():获取字节流

注意:两个流是互斥的 不能同时存在
自己写的:字符流
其他所有:字节流

sendRedirect():重定向 页面发生跳转

地址栏要发生改变,两次请求

请求转发和重定向的区别:

1、重定向2次请求,请求转发1次请求
2、重定向地址栏变化,请求转发地址栏不变
3、重定向转发通过浏览器,请求转发通过服务器内部
4、重定向可以访问站外资源(除开当前服务器以外),请求转发不能访问站外资源

了解:
setHeader(); 设置响应头
addHeader();添加响应头,如果有就覆盖 ,没有就添加

响应头:
location:配合状态码 实现重定向
refresh:刷新
cookie:小饼干
Content-Disposition:下载相关

//重定向

方式一:
sendRedirect():
方式二:
response.setStatus(302);
response.setHeader("location", "/myServlet6");

//定时刷新

response.setHeader("refresh", "3;url=http://www.baidu.com");

转载于:https://www.cnblogs.com/lyhhary/p/10316387.html

你可能感兴趣的文章
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
子网划分讲解及练习(一)
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>