JSP技术

JSP技术学习目标一、JSP概述二、JSP基本语法三、JSP隐式对象学习内容一、JSP概述1.1什么是jsp:它的英文全称javaserverpages,java服务端页面,它是建立在servlet规范基础上的动态网页开发技术。java服务端页面:在jsp上可以写java代码,也可以写html标记,它运行在服务器端。jsp=java+html+jsp自身的一些东西。为什么会产生jsp技术:因为在早期没有jsp时,需要servlet向页面写数据,比较麻烦,所以就产生了

大家好,欢迎来到IT知识分享网。

学习目标

一、JSP概述
二、JSP基本语法
三、JSP隐式对象

学习内容

一、JSP概述

1.1 什么是jsp:
它的英文全称 java server pages ,java服务端页面,它是建立在servlet规范基础上的动态网页开发技术。

  • java 服务端 页面: 在jsp上可以写java代码,也可以写html标记,它运行在服务器端。
  • jsp = java + html + jsp自身的一些东西。
  • 为什么会产生jsp技术:
    因为在早期没有jsp时,需要servlet向页面写数据,比较麻烦,所以就产生了jsp技术,
    jsp最大的特点:可以非常简单的书写页面html。
    jsp其实它的本质是servlet: 可以看到jsp 继承了 HttpJspBase 继承 HttpServlet。

1.2 编写第一个jsp文件
jsp生成java文件,编译成class文件,存在tomcat服务器的work目录。
注意:修改jsp的默认编码格式:window———->preferenes—–> 搜索 jsp —–> 选中编码 进行修改。
步骤:
1.创建JSP文件
在这里插入图片描述

2.命名文件
在这里插入图片描述

<%@page language=“java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<metacharset="UTF-8">
<title>Insert title here</title>
</head>
<body>
大数据2005 yanmin
   <%response.getWriter().print("四川")%>
</body>
</html> 

在这里插入图片描述
1.3.jsp运行原理
JSP的运行原理WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat 中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。

二、JSP基本语法

2.1 JSP脚本元素
在jsp页面书写java的三种形式:
1.可以声明语句和方法
2.可以书写java代码段
3.可以书写表达式
2.2JSP声明语句
JSP的声明语句用于声明变量和方法,它以“<%“开始,以“%>” 结束,其语法格式如

<%!

定义的变量或方法等

%>

在上述语法格式中,被声明的Java代码将被编译到Serlet的jsService(方法之外,即在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等。在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定的变量分配内存,而调用结束后立刻会释放所占的内存。
在一个JSP页面中可以有多个JSP声明语句,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。接下来,通过一个案例来演示JSP Scriptlets
和声明语句的使用。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
int a=1;
int b=2;
%>
<%!
public String dashuju(){ 
   
String str="dashuju";
return str;
}
%>
<% out.print(a+b);%>
<br/>
<% response.getWriter().print("yanmin");%>
<br/>
<% out.print(dashuju());%>
<br/>
<br/><br/><br/>
<%=a+b %>
<br/>
<%=dashuju()%>
</body>
</html>

2.3.JSP 指令
page指令、include指令、taglib指令(现在不讲)
page指令
page指令的用途是设置与jsp页面相关的信息,比如说设置jsp页面的编码,jsp页面的默认语言等
基本语法格式:<%@ page 属性=“属性值” 属性=“属性值” 属性=“属性值” %>
比如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	 pageEncoding="UTF-8"%>

include指令:
在jsp页面通常会需要显示其它页面的信息,所以可以通过这个include指令把其它页面包含过来。
基本语法:<%@ include file=“被包含文件的url” %>
创建两个jsp页面: date.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	date.jsp页面用来输出当前时间
	<%out.print(new Date().toLocaleString()); %>>

</body>
</html>

在这里插入图片描述
include.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	我是include页面,下面是我包含进来的页面:
	<%@ include file="date.jsp" %>
</body>
</html>


在这里插入图片描述

三、JSP隐式对象

隐式对象概述
什么是隐式对象:在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象。
jsp常见的九大隐式对象:
request: HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
response:HttpServletResponse,响应对象
session: HttpSession ,会话对象,它同时也是域对象,作用范围一次会话
application:ServletContext,上下文对象,它同时也是域对象,作用范围整个项目
config:ServletConfig,配置对象
out:JspWriter,其实和PrintWriter作用差不多。
page:Object ,代表当前jsp的页面对象
pageContext:PageContext ,jsp容器
exception:Throwable,异常对象,用来捕获异常信息。
只有当前jsp页面有isErrorPage=”true”这个属性时,才能使用exception对象。
3.1out对象
在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对象是javax servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的足,out对象的类型为JSpWriter, 它相当于一种带缓存 功能的PintWriteror接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系
在chapter06项目的WebContent 目录下创建out.jsp文件。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		out.print("first line <br/>");
		
		response.getWriter().print("seconde line <br/>");
	%>

</body>
</html>

在这里插入图片描述
3.2pageContext 对象
在JSP页面中,使用pageContext对象可以获取JSP的其他8个隐式对象。pageContext对象是javax. servlet.jsp PageContext类的实例对象,它代表当前JSP页面的运行环境,并提供了一系列用 于获取其他隐式对象的方法。pageContext 对象获取隐式对象的方法
结论:在pageContext域对象使用findAttribute方法获取值,进行了全域查找,
查找的范围:pageContext—>request—–>session—–>application
首先找域作用范围小的对象,如果有值获取到,停止向下查找,如果不存在对应的值,就继续向下寻找。
编写pageContext

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		HttpServletRequest req=(HttpServletRequest) pageContext.getRequest();
	
		pageContext.setAttribute("dashuju11", "pagecontext",PageContext.PAGE_SCOPE);
		pageContext.setAttribute("dashuju22","REQUEST",pageContext.REQUEST_SCOPE);
		pageContext.setAttribute("dashuju33","SESSION",pageContext.SESSION_SCOPE);
		pageContext.setAttribute("dashuju","APPLICATION",PageContext.APPLICATION_SCOPE);
	%>
	<%=pageContext.findAttribute("dashuju") %>
	<hr/>
	<%=(String)req.getAttribute("dashuju") %>
</body>
</html>

在这里插入图片描述
3.3exception 对象
它是用来捕获异常信息的。
使用它通常会用到两个属性:
errorPage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的页面
比如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	    pageEncoding="UTF-8" errorPage="error.jsp"%>
	<!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>
		<%
			int a=3;
			int b=0;
		%>
		输出:<%=(a/b) %>

在这里插入图片描述

isErrorPage: 属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象
比如:

  <%@ page language="java" contentType="text/html; charset=UTF-8"
	    pageEncoding="UTF-8" isErrorPage="true"%>
		<!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>
			输出异常信息:  <%=exception.getMessage() %>
		</body>
		</html>

在这里插入图片描述
2020080605041

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/9880.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信