javaweb重点知识整理

1.ServletContext对象
1.1含义: ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息,ServletContext对象一个web应用只有一个
1.2生命周期:
创建: 该web应用被加载(服务器启动或发布web应用(前提,服务器启动状态))
销毁: web应用被卸载(服务器关闭,移除该web应用)
1.3获取方式 request.getServletContext();
1.4对象方法(重点)
(1)ServletContext.getContextPath(); 获取应用名字
(2)ServletContext.getgetRealPath(里面填写资源存在应用中的位置);获取应用中资源的绝对路径

 String realPath01 = context.getRealPath("Demo01.class");
 输出的是 E:\javaEE\out\artifacts\javaWeb_war_exploded\Demo01.class

(3)getServletContext().getMimeType(name); 获得文件类型 MimeType (name=“a.txt”)
可以配合response.setContentType(“text/html;charset=utf-8”);使用
1.5域对象 域对象: ServletContext.setAttribute(name,value)设置域对象
ServletContext.value getAttribute(name)获取域对象
ServletContext.value removeAttribute(name)删除域对象(域对象的生命周期和ServletContext对象周期一样)
2.request对象
2.1对象方法
request.getMethod()获取请求方式,一般有get和post
request.getRequestURI();获取请求地址
request.getHeader(“user-agent”);获取请求浏览器信息
request.getHeader(“referer”);获取请求来源,防止盗链
request.getParameter(name)-根据name获得值
2.2乱码问题(一般只有post有,因为get字符集和tomcat字符集一样都默认为UTF-8)
第一种方式:
String username=request.getParameter(name);
String s = new String(username.getBytes(“ISO8859-1”), “UTF-8”);(一般不用这个)
第二种方式:
request.setCharacterEncoding(“UTF-8”);(一般用这个)
2.3域对象的使用 -> 转发
request.setAttribute(“name”,“value”)设置域对象
request.getRequestDispatcher(“/WEB-INF/test.html”).forward(request, response);转发请求
request.getParameter(“name”);获得域对象(生命周期:一次请求)
2.4获取Cookie request.getCookies()
2.5获取session request.getSession()
3.response对象:
3.1对象方法
response.setContentType(“text/html;charset=utf-8”); // 通知客户端, 响应体的解析类型和字符集 (解析类型: mime-type)可以配合getServletContext().getMimeType(name);使用
response.getWriter();// 字符流 获取输出流
response.getOutputStream(); // 字节流 获取输出流
重定向 (两次请求)

设置响应行: 状态码
response.setStatus(302);
response.setHeader("location", request.getContextPath()+"/Demo3Servlet");
 简化的重定向写法
response.sendRedirect(request.getContextPath()+"/Demo3Servlet");

3.2添加cooike
response.addCookie(cookie1);
4.cooike对象
Cookie cookie1 = new Cookie(“productId”, “12345”);创建对象
response.addCookie(cookie1);添加到响应中
Cookie[] cookies = request.getCookies();获取cooike
设置cookie的持久化时间
cookie.setMaxAge(2 * 60 * 60); // 2个小时
cookie1.setMaxAge(-1); // 默认时长(会话结束删除)
cookie2.setMaxAge(0); // 立即删除
设置cookie的携带范围
cookie.setPath(“/”); // 将cookie携带路径设置为当前服务器
cookie.setPath(request.getContextPath()); // 将cookie携带路径设置为当前应用
cookie1.setPath(request.getContextPath()+“/aaa”);
删除cookie
Cookie cookie = new Cookie(“name”, “zhangsan”);先创建一个一模一样的cookie出来
// 一模一样的携带路径, 一模一样的name, 才能算做同一个cookie
cookie.setPath(“/”);
cookie.setMaxAge(0);
response.addCookie(cookie);
5.Session
方法
HttpSession session = request.getSession(); 获取session对象
session.setAttribute(“name”, “session: 张三”);添加session信息
设置持久化
// JSESSIONID 持久化 -> 创建一个一模一样的cookie,设置maxAge
Cookie cookie = new Cookie(“JSESSIONID”, session.getId());
cookie.setPath(request.getContextPath());
cookie.setMaxAge(10 * 60);//10分钟
response.addCookie(cookie);
session什么时候被销毁
1.服务器关闭
2.session对象调用invalidate()
3.session默认失效时间30分钟
session域对象的生命周期 一次会话(可以包含多次请求)存在服务端

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值