ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Servlet总结

2021-05-30 14:00:41  阅读:298  来源: 互联网

标签:总结 请求 监听 获取 key Servlet response setHeader


Servlet总结

Servlet是什么

servlet是一个运行在服务器端的程序,用于接受前端的请求以及处理响应,Servlet包括Request、Response、Session、Context、Listener、Config、Filter。

生命周期

init() 只执行一次的初始化函数

doFilter(request,response,filterChain) 每次请求都会执行

destory() 只执行一次的销毁函数

Request请求对象

HttpServletRequest

@WebServlet("/xxx")

获取客户端的各种信息(ip、数据、请求头等)

getParamater(“name”); 获取前端提交的参数

getAttribute(“key”);获取存储到Request对象中的数据,转发的时候用到

setAttribute(“key”,“value”);存储到Request对象中的数据,转发的时候用到

getRequestURL()方法返回客户端发出请求时的完整URL。

getQueryString() 方法返回请求行中的参数部分。

getRemoteAddr()方法返回发出请求的客户机的IP地址。

getRemoteHost()方法返回发出请求的客户机的完整主机名。

getRemotePort()方法返回客户机所使用的网络端口号。

getLocalAddr()方法返回WEB服务器的IP地址。

getLocalName()方法返回WEB服务器的主机名。

getHeader(“key”)方法:获取请求头的信息

转发

req.getRequestDispatcher("/url").forward(req,resp);

req.getPart(“name”)获取前端提交的文件,form表单需要enctype=“multipart/form-data”、@MultipartConfig

Session存储对象

getSession() 如果获取不到就返回null

getSession(boolean) 如果获取不到就创建新的对象

session.setAttribute(“key”,“value”); 存

session.setAttribute(“key”,“newvalue”); 更新

session.removeAttribute(“key”); 删除

Response响应对象

HttpServletResponse

setHeader(String name,String value) 将给出的名字和值设置响应的头部

setHeader(“refresh”,“5;url=http://aaa.com”) 自动跳转

setHeader(“content-disposition”,“attachment;filename=xx.xx”);

setError(int sc) 能控制页面是否正常访问

setStatus(int sc) 仅仅改变状态码而已,给当前响应设置状态码,如:setStatus(200)

context.getMimeType(filename) 获取响应的MIME类型

setContentType(String ContentType) 设置响应的MIME类型,setContentType(“text/html”)

setCharaceterEncoding(String arg) 设置响应的字符集编码,如:setCharaceterEncoding(“utf8”)

重定向:

sendRedirect(“htpp://aaa.com”)

Context上下文对象

可以在任何地方直接调用getServletContext()获取对象,代表整个应用程序,一般可用于存储公共数据

context.getMimeType(filename) 获取响应的MIME类型

Listener监听器

@WebListener

1、 ServletContextListener 监听整个应用程序(启动|销毁)

2、 ServletContextAttributeListener 监听整个应用(属性)程序(增加|修改|删除)

3、 ServletRequestListener 监听每一次请求对象(启动|销毁)

4、 ServletRequestAttributeListener 监听每一次请求对象(属性)(增加|修改|删除)

5、 HttpSessionListener 监听Session(启动|销毁)

6、 HttpSessionAttributeListener 监听Session(属性)(增加|修改|删除)

Filter过滤器

Filter过滤Servlet

@WebFilter("/*")

生命周期

init() 只执行一次的初始化函数

doFilter(request,response,filterChain) 每次请求都会执行

destory() 只执行一次的销毁函数

字符集编码过滤器

servletRequest.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=utf8");
servletResponse.setCharacterEncoding("utf8");

跨域请求过滤器

HttpServletResponse response = (HttpServletResponse) servletResponse;
// 允许的源头,请求这的ip,多个都好隔开
response.setHeader("Access-Control-Allow-Origin", "*");
// 允许的请求方法,多种方法都好隔开
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
// 允许的请求头字段,多个都好隔开
response.setHeader("Access-Control-Allow-Headers", "*");
// 用来指定本次预检请求的有效期,单位为秒,在此期间不用再发出另一条预检请求
response.setHeader("Access-Control-Max-Age", "3600");
// 是否允许后续请求携带认证信息(cookies),该值只能是true,否则不返回
response.setHeader("Access-Control-Allow-Credentials", "true");
filterChain.doFilter(servletRequest, response); // 特性:

标签:总结,请求,监听,获取,key,Servlet,response,setHeader
来源: https://blog.csdn.net/Gzycode/article/details/117397514

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有