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页面内置对象的更多相关文章

  1. 关于jsp的内置对象request和response的重定向和转化(待补充)

    请求重定向 1.客户端行为 2.response.sengRedirect(): 3.本质上讲,相当于请求两次 4.URL地址会改变 请求转发 1.服务器行为 2.response.getReques ...

  2. 转:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别

    原文地址:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别 首先说明一下jsp9大内置对象 (1)HttpSession类的session对 ...

  3. Java 请求转发和重定向的区别以及JavaWeb三大作用域

    三大作用域以及转发和重定向 学习总结 1. 转发和重定向 转发 重定向 转发和重定向的区别: 什么时候用转发什么时候用重定向 三大作用域 作用域类型 作用域方法 如何选择作用域 总结 学习总结 1. ...

  4. Servlet中转发和重定向的区别

    Servlet中页面的跳转有两种方式:转发和重定向. 1.转发和重定向的区别 ①转发是服务器行为,重定向是客户端行为. ②转发是浏览器发生了一次请求,重定向至少是两次请求. ③转发地址栏中的url不会 ...

  5. servlet之转发与重定向的区别

    转发(服务器端跳转):  一次请求 <jsp:forward> request.getRequestDispatcher("new.jsp").forward(requ ...

  6. jsp内置对象 转发与重定向的区别

    jsp 内置对象  转发与重定向的比较 重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重 ...

  7. Java中转发与重定向的区别

        转发与重定向的区别 转发是服务器行为,重定向是客户端行为 1.转发在服务器端完成的:重定向是在客户端完成的2.转发的速度快:重定向速度慢3.转发的是同一次请求:重定向是两次不同请求4.转发不会 ...

  8. SERVLET API中转发与重定向的区别?

    SERVLET API中转发与重定向的区别? 1.转发(forward方法) 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址. 转发是服务器请求资源,服务器直接访问目标地址的 ...

  9. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  10. 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别

    jsp中常用的几个内置对象: 一.request对象 主要作用:  (1)获取请求页面的信息   比如:request.getParameter("参数名");  (2)获取客户端 ...

随机推荐

  1. ELK基于ElastAlert实现日志的微信报警

    文章转载自:https://mp.weixin.qq.com/s/W9b28CFBEmxBPz5bGd1-hw 教程pdf文件下载地址 https://files.cnblogs.com/files/ ...

  2. CentOS7下的lvm(逻辑卷)在线扩容

    扩展前该lvm分区为14GB 关闭系统,给sdb硬盘扩展6GB,然后重新进入CentOS.(或者是原有磁盘还有剩余未使用的空间) 对sdb进行分区: [root@converter ~]# fdisk ...

  3. 天翼云上新增IP备案具体操作步骤

    0.点击右上角的备案,进入到备案中心 1.已备案信息管理 点击左侧的已备案信息管理,右侧出现的页面中找到已备案网站信息,网站负责人后面的操作里有5个图标,点击第三个(变更接入),提交订单,进入到下一步 ...

  4. logstash中关于Jdbc输入配置选项详解

    Setting Input type Required clean_run boolean No columns_charset hash No connection_retry_attempts n ...

  5. 如何生成均匀随机数 C++

    #include <iostream> #include <fstream> #include <cstdlib> #include <ctime> u ...

  6. rowkey设计原则和方法

    rowkey设计首先应当遵循三大原则: 1.rowkey长度原则 rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存, ...

  7. vulnhub靶场|NAPPING: 1.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:NAPPING: 1.0.1,地址我这里设置的桥接,,下载地址:https://download.vulnhub.com/napping/nap ...

  8. Linux 下搭建 HBase 环境

    Linux 下搭建 HBase 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 HBase 环境 CSDN:Linux 下搭建 HBase 环境 前置工作 首先,需要先完成 Linux ...

  9. Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)

    插槽Vue.js官网介绍:https://vuejs.org/guide/components/slots.html 会牵涉到template的用法.占位.实际不渲染到页面中 1.默认插槽: 1.1 ...

  10. 通过刷题HTML遇到的问题

    通过刷题HTML遇到的问题 1.有关选择器的权重问题 1.通配符选择器和继承:权重为0, 2.标签选择器:权重为0001 3.类选择器:权重为0010 4.id选择器:权重为0100 5.行内样式:权 ...