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)获取客户端 ...
随机推荐
- Openstack Neutron : 安全
目录 - iptable:起源 - tables - chains - rules - 方向 - Security group 安全组: - Firewall 防火墙: - 更高的安全 - 无处安放的 ...
- Java SE 2、抽象类
抽象类 用abstract关键字来修饰一个类时,这个类就是抽象类 访问修饰符 abstract 类名 { } 用abstract关键字来修饰一个方法时,这个方法就是抽象方法 访问修饰符 a ...
- 在k8s集群中安装traefik,并结合kuboard界面使用
安装traefik 参考步骤:https://blog.51cto.com/u_13760351/2764008?xiangguantuijian&01 修改好的四个yaml文件下载地址:ht ...
- Kafka QuickStart
环境版本 操作系统:CentOS release 6.6 (Final) java版本: jdk1.8 kafka 版本: kafka_2.11-1.1.1.tgz 安装kafka 1. 下载压缩包, ...
- linux搭建内网邮件服务器
一.配置发件服务器 1.1 根据现场IP,配置主机名 vi /etc/hosts 192.168.40.133 mail.test.com 将主机名更改为邮件服务器域名mail.test.com 1. ...
- C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压
zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作, 我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包. 使用的时候记得 usi ...
- QML 信号与响应方法的总结
以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16748191.html 如果面试过程中,面试官想了解你对 ...
- 洛谷P2367 语文成绩(差分)
标准的差分应用题,不要想的太复杂,写成了线段树. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=5e6+10 ...
- 魔改xxl-job,彻底告别手动配置任务!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. xxl-job是一款非常优秀的任务调度中间件,轻量级.使用简单.支持分布式等优点,让它广泛应用在我们的项目中,解 ...
- 前端框架Vue------>第一天学习(3)
文章目录 8 .使用Axios实现异步通信 9 .表单输入绑定 9.1 . 什么是双向数据绑定 9.2 .为什么要实现数据的双向绑定 9.3 .在表单中使用双向数据绑定 8 .使用Axios实现异步通 ...