Jsp文件用法

Jsp文件是方便我们写Servlet显示页的一种文件。我们在里面写好页面代码,服务器会在启动之前,自动的把它转换成为Servlet文件,并把网页代码使用输出语句包装起来。

jsp文件构建在WebRoot文件夹下

1.jsp文件中其他语言的写法
注释:

jsp文件是用来转义成Servlet的,说白了就是转换成java代码的,因此在jsp中使用java注释,java注释会被转义到Servlet文件当中。

同样的,如果在jsp当中使用Http,CSS/JavaScript的注释,那么这个注释不仅会转义到Servlet当中,还会被Servlet发送到浏览器那里。因此,jsp文件有一种全新的注释方法:

<%-- 注释内容 --%>
Java代码块(局部):

Java代码使用尖括号加百分号的方式写在jsp文件当中,代码块声明的Java代码会被原样转译到jsp对应的_JspServlet方法当中,也就是说,代码块当中声明的变量都是局部变量。

尽可能不要书写过多的逻辑判断代码在jsp当中,会使代码极为混乱和难以阅读

<%	
	String hello = "hello World";
%>
Java代码块(全局):

全局Java代码块会将java代码声明到jsp的Service方法外面。作为全局代码转义到对应的Servlet类当中,因此可以用来声明一些方法。

全局代码块声明的方法,只能在局部代码块当中使用。

<%!
	public String HelloWorld()
	{
		return "HelloWorld";
	}
%>
Java脚本段(常用):

快速获取变量或者方法的返回值作为响应给浏览器

<%=HelloWorld() %>

上面的jsp语句会在生成的Servlet文件当中转化为:

out.print(HelloWorld())

建议用来添加变量或者方法

注意:使用此方法时,不要再末尾添加分号了

其他浏览器读取的语言直接写在外面就好╮(╯▽╰)╭

2.page指令
<%@ page language="java" import="java.util.*,java.lang.*" pageEncoding="utf-8"%>

language属性:声明jsp要转义的语言(目前只支持java)

import:声明转译的Java文件需要导入的包,不同的包用逗号隔开即可

pageEncoding:设置jsp文件的数据编码格式(不声明称utf-8就会乱码)

contentType:声明生成的Servlet响应给浏览器的编码格式。(默认和pageEncoding的属性相同)

session:设置转译的Servlet当中是否开启session支持(默认开启)

errorPage:设置当servlet运行出错的时候,跳转的页面(总不能把500错误码给用户吧)

extends:设置jsp转译的java文件继承的父类(格式:包名+类名)(不建议设置

3.Jsp的静态引入(include指令)
<%@ include file="Static.jsp" %>

静态进入的Jsp文件不会单独转义成Servlet文件。它会把静态引入的代码加入到我们被引入的jsp文件当中。

注意:静态引入的jsp代码和被引入的jsp文件可能会出现java变量同名的情况,需要尽可能的避免。

4.Jsp的动态引入
<jsp:include page="Static.jsp"></jsp:include>

和静态引入不同,动态引入相当于调用我们的jsp文件去打开我们引入的jsp文件,这个动作会创建动态引入的jsp文件。在网页中显示合并后的显示效果。

动态引入允许文件中声明同名变量。

动态引入和静态引入用于降低jsp代码的冗余,便于代码的维护。

5.Jsp的转发标签
<jsp:forward page="Static.jsp"></jsp:forward>

用处和Servlet当中的转发相同,一次请求,不改变地址栏的信息。

6.九大内置对象

jsp转换成为对应的Servlet文件的时候,会自动生成并声明的对象。我们可以直接使用。

(1)pageContext:

页面上下文对象,封存了当前的jsp运行信息,封存了其他内置对象。每个Jsp文件单独拥有一个pageContext对象,正常情况下,作用域只存在于当前Service方法当中。(当前页面)

(2)request:

封存当前请求的对象,由Tomcat服务器创建。

(3)session:

此对象用来存储用户的不同请求的共享数据。

(4)application:

也就是Servlet当中的ServletContext对象,存储整个项目的共享数据

(5)response:

响应对象,可以用来重定向、设置响应头

(6)out:

相应对象,Jsp内部使用。在浏览器输出的效率上高于response对象,但是不具有重定向、转发的能力

(7)page:

代表当前Servlet(Jsp)对象,相当于this关键字。

(8)exception:

异常对象。存储当前运行的异常信息

使用此对象,需要现在page指定中,声明属性isErrorPage = "true"开启。

(9)config:

就是ServletConfig,用于完成获取web.xml文件当中的指令,完成一些初始化的操作

7.jsp的路径跳转

在jsp中资源路径可以使用相对路径进行跳转,但是,资源的位置不能随意挪动。

使用绝对路径(常用,易读):

​ 格式:/虚拟项目名/项目资源路径

Jsp自带的全局路径声明:

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

作用:给资源前面添加项目路径,我们跳转的时候不需要再写虚拟项目名了,直接写项目资源路径即可。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值