ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JSP简易理论知识

2021-04-13 21:02:42  阅读:163  来源: 互联网

标签:Java Servlet 简易 JSP 理论知识 缓冲区 jsp servlet


前提

: 为了弥补在 Java 中书写 HTML 标签该问题而出现的;

JSP 概述

: Servlet 是 JavaEE 提供的动态资源开发技术,是以 Java程序 的形式进行开发,在Java中 书写HTML标签 是一件十分头疼的事情,所以人们开发出了 JSP(全称:Java Server Pages)。 看起来像是 HTML 一样,但可以在其中书写 Java 代码,本质上是 动态web 资源,JSP 会在第一次访问时被容器翻译成 Servlet。

生命周期

1.编译阶段

: servlet容器编译servlet源文件,生成servlet类
初始化阶段

: 加载域 JSP 对应的 servlet类,创建其实例,并调用他的初始化方法;
执行阶段
: 调用域JSP 对应的 servlet 实例的服务方法
销毁阶段
: 调用与 JSP 对应的 servlet实例的销毁方法,然后销毁servlet实例;

JSP - - - Servlet

: 在 jsp 翻译成 Servlet 时,jsp翻译引擎 在翻译过来的 Servlet 中,预先定义了一些变量,可以不需要在 JSP 中预先定义就可以直接使用,共有9个,这个九个称为 JSP 的九大隐式对象。

九大隐式对象:
				page
				config 
				application
				response
				request
				session
				out
				exception
				pageContext
	注意: out 与 response.getwriter().write(); 
	      两者如果一起使用的话,会出现顺序错乱;

Out 对象

:可以将它理解成 response.getWriter() 获得的PrintWriter;
:他自带一个缓冲区,其大小受 page 指令中的 buffer 的设定限制;
:当 缓冲区满 或 缓冲区被关闭 或者 jsp 页面结束;
:则此缓冲区中的内容将被刷新到 response,getWriter()的缓冲区中;

pageContext 对象

作用的范围 : 整个 jsp 页面,是四大作用域中最小的一个;
生命周期 : 在 jsp 页面范围内共享数据;
特殊作用 :可以去操作其他三个作用域;

操作所有域中属性的方法:

      getAttribute(String name,int scope);
      setAttribute(String name,object value,int scope);
      removeAttribute(String name,int scope);

其中 pageContext 中代表域的常量:
		
	  PageContext.APPLICATION_SCOPE
	  PageContext.SESSION_SCOPE
	  PageContext.REQUEST_SCOPE
	  PageContext.RESPONSE_SCOPE
	  
 findAttribute()方法:
 
     在四大域中搜寻属性,
     搜寻的顺序是 page域,request域,session域,application域,
     从小域到大域开始搜索,如果搜索到就直接获取该值,
     如果所有域中都找不到,返回一个null;

举例(获取其他作用域的值)

	<%
	
	pageContext.setAttribute(“city”,"北京");
	request.setAttribute("city","济南");
	session.setAttribute("city","太原");
	application.setAttibute("city","石家庄");
	
	%>

	city=<%=pageContext.getAttribute("city") %><br>
	
	request.city=
	<%=
	pageContext.getAttribute("city",PageContext.REQUEST_SCOPE) 
	%><br>


	session.city=
	<%=
	pageContext.getAttribute("city",PageContext.SESSION_SCOPE) 
	%><br>

	application.city=
	<%=
	pageContext.getAttribute("city","PageContext.REQUEST_SCOPE")
	%>

实现请求的转发和包含

	转发:
	
		<%
			pageContext.forward("/_index.jsp");
			//request.getRequestDispatcher().forwart(request.response);
		%>

	包含:

		<%
        	pageContext.include("/_head.jsp");
		%>
	
		<%
			pageContext.include("/_foot");
		%>

标签:Java,Servlet,简易,JSP,理论知识,缓冲区,jsp,servlet
来源: https://blog.51cto.com/u_15165233/2704077

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有