专栏首页python3JSP学习笔记(3)——域对象的属性操作

JSP学习笔记(3)——域对象的属性操作

pageContext, request,session,application 对象都有这些方法,称为域对象

  1. Object getAttribute(String name)
  2. Enumeration getAttributeNames()
  3. removeAttribute(String name)
  4. void setAttribute(String name,Object o)

pageContext:属性的作用范围仅限于当前JSP页面

request:仅限于同一个请求

session:限于一次会话(浏览器打开直到关闭是一次会话)

application:属性的作用范围限于当前web应用。只要在一处设置属性,在其他各处的JSP或Servlet中都可以获取到

请求的转发和重定向:

1.区别:请求的转发只发出了一次请求,而重定向则发出了两次请求

//转发:地址栏为/forwardServlet
import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ForwardServlet
 */
@WebServlet("/forwardServlet")
public class ForwardServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	
		//请求的转发
		//1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象
		//调用getRequestDispatcher()需要传入要转发的地址
		String path = "testServlet";
		RequestDispatcher requestDispatcher = request.getRequestDispatcher("/" + path);
		//2.调用HttpServletRequest的forward(request,response)进行请求的转发
		requestDispatcher.forward(request, response);
		
	}

}


//重定向:地址栏为testServlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RedirectServlet
 */
@WebServlet("/redirectServlet")
public class RedirectServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		//执行请求的重定向,直接调用response.sendRedirect(path)方法,path为重定向的地址
		String path = "testServlet";
		response.sendRedirect(path);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

在最终的Servlet中,转发的request对象和中转的那个request是同一个对象,重定向的则不是。

转发:/ 代表的是当前web应用的根目录;重定向:代表的是当前web站点的根目录

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • sanic异步框架之中文文档

    在安装Sanic之前,让我们一起来看看Python在支持异步的过程中,都经历了哪些比较重大的更新。

    py3study
  • python数据分析系列(1)

      python数据分析主要处理的是结构化数据(structured data)例如:

    py3study
  • sanic中文文档

    Install Sanic:python3 -m pip install sanic example

    py3study
  • 第74节:Java中的Cookie和Session

    启动服务器后,会给每个应用程序创建一个ServletContext,并且这个ServletContext对象只有一个。可以用于获取全局参数,工程下的资源,和存取...

    达达前端
  • Java Web学习总结(六)——Servlet开发(二)

      在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。

    Java团长
  • 【字节跳动面试题】C++指针作为参数传递

    调用函数verifyPointerArgumentOfFunction时,num将其数组首元素的地址传入,赋值给p,调用了p的拷贝构造函数,因此p的值和num其...

    用户7257200
  • go语言实现sqrt的方法

    package mymath import "math" func InvSqrt(x float32) float32 { var xhalf flo...

    李海彬
  • HDU 3783 ZOJ

    ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/...

    Angel_Kitty
  • 图说C++对象模型:对象内存布局详解

    Tencent JCoder
  • 《JAVA高并发编程详解》-Thread start方法的源码

    朱季谦

扫码关注云+社区

领取腾讯云代金券