day32 6 请求转发与重定向的区别、session会话对象 & cookie & 8 应用程序上下文对象ServletContext & 5 请求转发与jsp页面内置对象
1 请求转发与重定向的区别
2 session与cookie的区别
3 过滤器与监听器的区别
4 web-inf目录
web-inf目录是安全目录,无法从客户端访问,只能通过(服务端的)servlet的请求转发访问
5 servlet生命周期
6 ServletContext对象
JSP简介
jsp是一种模板引擎(渲染前端布局)
JSP指令
JSP内置对象(9种)
请求与响应
httpservletrequest请求
接收客户端发送的请求报文
httpservletresponse响应
响应客户端的请求(给客户端返回数据)
页面跳转方式:请求转发与重定向
请求转发
req.getRequestDispatcher("page/demo.jsp").forward(req,res);
重定向
res.sendRedirect("http://baidu.com");
或
res.senRedirect("user?method=queryAll");
请求转发与重定向区别
注意:
1)请求转发之后不能创建响应类的输出流
2)请求转发之后不能重定向
printWriter out = res.getWriter();
out.write("1233");
1)转发使用的是req.getRequestDispatcher()方法;重定向使用的是res.sendRedirect();
2)转发:浏览器URL的地址栏不变;重定向:浏览器URL的地址栏改变;
3)转发是服务器行为,重定向是客户端行为;
4)转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
Session会话
session可以理解为缓存
以下代码在anotherServlet中跳转demo02.jsp中也可以获取到,但浏览器关闭缓存被释放
可以设置session失效时间(s)
一旦客户端与服务端断开连接,session就会失效
//MyServlet.java内
public class MyServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
//获取session会话对象(getSession()会在请求范围内查找是否存在session对象,如果存在则返回该对象,否则创建一个新的session对象)
HttpSession session = req.getSession();
//设置session十秒后失效
session.setMaxInactiveInterval(10);
//添加属性到session中
session.setAttribute("name", "111");
//请求转发
req.getRequestDispatcher("page/demo.jsp").forward(req, res);
}
}
<!-- demo.jsp内 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello session<!-- 打印到浏览器页面显示 -->
<%
System.out.println("hello session");/* 打印到控制台 */
%>
<%=session.getAttribute("name") %><!-- 输出到前端页面 -->
</body>
</html>
session与cookie的区别
Cookie
在doGet方法内创建&获取cookie
先创建,再获取,中间cookie一直保存在浏览器中(除非setMaxAge时间到了)
/**创建cookie
//创建一个cookie对象
Cookie cookie = new Cookie("k1", "张三abc");
//设置过期时间单位(s)
cookie.setMaxAge(30);
res.setCharacterEncoding("GBK");
PrintWriter out = res.getWriter();
out.write("开始写入cookie");
//添加cookie到响应对象
res.addCookie(cookie);
out.write("结束写入cookie");
if(out != null){
out.close();
}
*/
/**获取cookie
Cookie[] cookies = req.getCookies();
for (Cookie c : cookies) {
System.out.println(c.getName()+"**" + c.getValue());
}
*/
ServletContext接口
MyServlet内
//获取servletConfig对象(因为是tomcat创建的)
ServletConfig sc = getServletConfig();
//获取ServletContext对象,全局唯一
ServletContext sct = getServletContext();
//添加参数
sct.setAttribute("name01", "111");
sct.setAttribute("name02", "222");
PrintWriter out = res.getWriter();
out.write("success");
out.flush();
if (out != null) {
out.close();
}
NewServlet内验证在MyServlet内创建的ServletContext存在全局
public class NewServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取servletConfig对象(因为是tomcat创建的)
// ServletConfig sc = getServletConfig();
//获取ServletContext对象,全局唯一
ServletContext sct = getServletContext();
System.out.println(sct.getAttribute("name01")+"***"+sct.getAttribute("name02"));
//可以改变属性的值,ThirdServlet再去get的时候就会name01就会获得这个覆盖的值
//sct.setAttribute("name01","333");
}
}
day32 6 请求转发与重定向的区别、session会话对象 & cookie & 8 应用程序上下文对象ServletContext & 5 请求转发与jsp页面内置对象的更多相关文章
- 关于jsp的内置对象request和response的重定向和转化(待补充)
请求重定向 1.客户端行为 2.response.sengRedirect(): 3.本质上讲,相当于请求两次 4.URL地址会改变 请求转发 1.服务器行为 2.response.getReques ...
- 转:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别
原文地址:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别 首先说明一下jsp9大内置对象 (1)HttpSession类的session对 ...
- Java 请求转发和重定向的区别以及JavaWeb三大作用域
三大作用域以及转发和重定向 学习总结 1. 转发和重定向 转发 重定向 转发和重定向的区别: 什么时候用转发什么时候用重定向 三大作用域 作用域类型 作用域方法 如何选择作用域 总结 学习总结 1. ...
- Servlet中转发和重定向的区别
Servlet中页面的跳转有两种方式:转发和重定向. 1.转发和重定向的区别 ①转发是服务器行为,重定向是客户端行为. ②转发是浏览器发生了一次请求,重定向至少是两次请求. ③转发地址栏中的url不会 ...
- servlet之转发与重定向的区别
转发(服务器端跳转): 一次请求 <jsp:forward> request.getRequestDispatcher("new.jsp").forward(requ ...
- jsp内置对象 转发与重定向的区别
jsp 内置对象 转发与重定向的比较 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重 ...
- Java中转发与重定向的区别
转发与重定向的区别 转发是服务器行为,重定向是客户端行为 1.转发在服务器端完成的:重定向是在客户端完成的2.转发的速度快:重定向速度慢3.转发的是同一次请求:重定向是两次不同请求4.转发不会 ...
- SERVLET API中转发与重定向的区别?
SERVLET API中转发与重定向的区别? 1.转发(forward方法) 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址. 转发是服务器请求资源,服务器直接访问目标地址的 ...
- JavaWeb——JSP内置对象request,response,重定向与转发 学习总结
什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...
- 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别
jsp中常用的几个内置对象: 一.request对象 主要作用: (1)获取请求页面的信息 比如:request.getParameter("参数名"); (2)获取客户端 ...
随机推荐
- 使用 Loki 微服务模式部署生产集群
转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247500523&idx=1&sn=0994af2b50 ...
- nginx+uwsgi+flask
说明:没用虚拟环境 安装nginx,并新建一个conf配置文件,启动nginx # xxx.conf server { listen 80; server_name localhost; locati ...
- Traefik知识点
Traefik 的各种 Providers Traefik 中的配置发现是通过下面的一些 providers 来实现的. providers 是现有的一些基础架构组件,可以是编排工具,容器引擎,云提供 ...
- 使用 Auditbeat 模块监控 shell 命令
使用 Auditbeat 模块监控 shell 命令 Auditbeat Audited 模块可以用来监控所有用户在系统上执行的 shell 命令.在终端用户偶尔才会登录的服务器上,通常需要进行监控. ...
- Redis 监控指标
监控指标 性能指标:Performance 内存指标: Memory 基本活动指标:Basic activity 持久性指标: Persistence 错误指标:Error 性能指标:Performa ...
- spring-boot-maven-plugin报红问题
spring-boot-maven-plugin报红的原因是因为缺少Spring-Boot的版本号, 版本号可在pom.xml中找到,找到Spring-Boot的版本号后一定不要忘记点击maven的刷 ...
- 【算法训练营day7】LeetCode454. 四数相加II LeetCode383. 赎金信 LeetCode15. 三数之和 LeetCode18. 四数之和
[算法训练营day7]LeetCode454. 四数相加II LeetCode383. 赎金信 LeetCode15. 三数之和 LeetCode18. 四数之和 LeetCode454. 四数相加I ...
- JDBC连接SQL Server2008 完成增加、删除、查询、修改等基本信息基本格式及示例代码
连接数据库的步骤: 1.注册驱动 (只做一次) 2.建立连接 3.创建执行SQL的语句.执行语句 4.处理执行结果 5.释放资源 1.建立连接的方法: Class.forName("com. ...
- vue-router路由实现页面的跳转
1.项目结构 2.定义组件 组件1 Login.vue <template> <form> 账号:<input type="text"> 密码: ...
- Elasticsearch Analyzer 内置分词器
Elasticsearch Analyzer 内置分词器 篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识 es 提供 ...