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)获取客户端 ...
随机推荐
- ELK基于ElastAlert实现日志的微信报警
文章转载自:https://mp.weixin.qq.com/s/W9b28CFBEmxBPz5bGd1-hw 教程pdf文件下载地址 https://files.cnblogs.com/files/ ...
- CentOS7下的lvm(逻辑卷)在线扩容
扩展前该lvm分区为14GB 关闭系统,给sdb硬盘扩展6GB,然后重新进入CentOS.(或者是原有磁盘还有剩余未使用的空间) 对sdb进行分区: [root@converter ~]# fdisk ...
- 天翼云上新增IP备案具体操作步骤
0.点击右上角的备案,进入到备案中心 1.已备案信息管理 点击左侧的已备案信息管理,右侧出现的页面中找到已备案网站信息,网站负责人后面的操作里有5个图标,点击第三个(变更接入),提交订单,进入到下一步 ...
- logstash中关于Jdbc输入配置选项详解
Setting Input type Required clean_run boolean No columns_charset hash No connection_retry_attempts n ...
- 如何生成均匀随机数 C++
#include <iostream> #include <fstream> #include <cstdlib> #include <ctime> u ...
- rowkey设计原则和方法
rowkey设计首先应当遵循三大原则: 1.rowkey长度原则 rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存, ...
- vulnhub靶场|NAPPING: 1.0.1
准备: 攻击机:虚拟机kali.本机win10. 靶机:NAPPING: 1.0.1,地址我这里设置的桥接,,下载地址:https://download.vulnhub.com/napping/nap ...
- Linux 下搭建 HBase 环境
Linux 下搭建 HBase 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 HBase 环境 CSDN:Linux 下搭建 HBase 环境 前置工作 首先,需要先完成 Linux ...
- Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
插槽Vue.js官网介绍:https://vuejs.org/guide/components/slots.html 会牵涉到template的用法.占位.实际不渲染到页面中 1.默认插槽: 1.1 ...
- 通过刷题HTML遇到的问题
通过刷题HTML遇到的问题 1.有关选择器的权重问题 1.通配符选择器和继承:权重为0, 2.标签选择器:权重为0001 3.类选择器:权重为0010 4.id选择器:权重为0100 5.行内样式:权 ...