Jsp第六课 Jsp简介和初步使用
Posted 笔触狂放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jsp第六课 Jsp简介和初步使用相关的知识,希望对你有一定的参考价值。
Jsp简介
1.Java Server Page(JSP)是由Sun公司倡导、许多公司参与共同创建的一种动态网页技术标准。
2.Jsp在传统的网页html文件中加入java程序片段(scriptlet)和JSP标签就构成了JSP网页。
3.Jsp的主要作用是简化了java服务器端程序的开发。
4.Jsp本质上就是一个servlet,服务器会根据jsp产生一个java文件和一个class文件,文件保留在tomcat的work目录下。
了解完Jsp页面的执行流程之后,我们来操作代码,需要分析一下,为什么说Jsp就是Servlet,我们做一个详细的研究!!!
这里我们创建一个项目,分别创建一个Servlet类,类名为One,创建一个Jsp文件,文件名为index.jsp.
在One这个类的doget方法中我们编写以下代码,往浏览器发送一个具备html代码格式的标题。
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter pw=response.getWriter();
pw.append("<h1>我是标题一</h1>");
}
在index.jsp文件中,我们也想达到一样的效果,只需要添加以下代码即可
<body>
<h1>我是Jsp的标题一</h1>
</body>
我们通过简单对比,显然使用jsp方式编写html页面方便简单。那项目最终是运行在服务器上的,jsp文件在运行之后会先被翻译成java文件,再编译成class文件进行执行,我们现在需要找到被翻译之后的java文件,研究一下。如果初学者忘记怎么tomcat按照到哪个路径下去了,可以点击window--》preferences
查看tomcat的安装路径,从tomcat文件夹路径下,找到work文件夹,然后找到当前运行的项目,并打开,找到被翻译后的java文件,index_jsp.java。
jsp文件中,我们编写的html代码其实最终还是与Servlet中一样被作为String字符串的方式输出给浏览器,只不过将tomcat服务器帮我们把繁琐的java代码进行封装,而不再需要我们开发者大量的操作java代码而已。并通过查看源代码发现:
那么很明显可以看出Servlet和Jsp之间的关系,显然Jsp被翻译以后其实就是Servlet的子类,与One的写法基本是一致。那么也就是意味着,我们在Servlet中运用和学习的技术在Jsp文件中都是可以如法炮制的。
接下来,Jsp文件中不仅仅可以编写html代码,Jsp文件中可以编写多种语言的混合使用:
Jsp中脚本元素的用法
我们知道Servlet是java类,是可以进行定义全局变量,定义方法,并且也能编写大量的可执行的代码,包括判断,循环,创建对象等等操作,那么我们根据上面的分析得出Jsp和Servlet是一样的,那也就意味着我们也能在jsp页面中定义变量,定义方法,做java代码的执行操作。只不过需要特殊的符号进行包裹:
定义全局变量,方法:
将java代码中的结果数据转换成文本输出在浏览器上:
做if语句的判断操作,这里因为需要html语言和java代码进行混合使用,这里需要将java代码进行分段操作:
(1)jsp脚本片段中可以定义变量、编写语句,不能定义方法。
(2)jsp脚本片段中只能出现java代码。
(3)jsp脚本片段中的java代码必须严格遵循java语法,例如,在执行语句后必须用分号(;)结束。
(4)在一个jsp页面中可以有多个脚本片段,在两个或多个脚本片段之间可以嵌入文本、HTML标记和其他jsp元素。
(5)多个脚本片段中的代码可以互相访问。
(6)单个脚本片段可以是不完整的,但是多个脚本片段组合之后必须是完整的java语句。
Jsp注释
Jsp指令
page指令
在我们创建的Jsp页面的最顶部就已经自动生成了page指令的代码:
那么我们继续简单运用一下其他的属性:
import属性用于导入需要调用的其他java类的包:
使用快捷方式导入使用的java类后,会发现文件的最上面多出几行代码:
isErrorPage属性和errorPage属性:
在我们编写代码的过程中经常会出现代码报错,浏览器上出现一大片报错信息:
那么为什么我们日常生活中访问的网站怎么就没有出现报错页面呢,难道别人开发的网站就真的那么牛逼,能做到没有任何Bug,并不是的,是因为别人对错误信息做了处理,创建了专门显示错误信息的友好提示页面而已,那么我们也来完成一个!
创建一个two.jsp页面:
<%@ page language="java" errorPage="error.jsp" 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=100/0;
%>
</body>
</html>
接下来创建error.jsp页面:
<%@ page language="java" isErrorPage="true" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>亲,你的代码出现除数为0的异常 ,请仔细检查你的代码,是否存在被除数除以除数而导致的页面报错!!!</p>
</body>
</html>
再次运行,你会发现,不会再显示报错信息,而是跳转了一个新的页面告知用户产生错误的原因。
include指令
}静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译,生成一个java文件。
}语法:
} <%@ include file="路径" %>
创建jsp文件three.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>
<div style="width: 900px;height: 800px;
background-color: green; margin: auto;">
<!-- 头部 -->
<%@ include file="head.jsp" %>
<!-- 中部 -->
<%@ include file="center.jsp" %>
<!-- 底部 -->
<%@ include file="foot.jsp" %>
</div>
</body>
</html>
创建head.jsp,center.jsp,foot.jsp文件,并使用include指令将多个文件包含在一个jsp文件中,作为其中的一部分,并在翻译的时候,产生一个java文件。
head.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>
<div style="width: 900px;height: 200px;background-color: red;"></div>
</body>
</html>
center.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>
<div style="width: 900px;height: 400px;background-color: pink;"></div>
</body>
</html>
foot.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>
<div style="width: 900px;height: 200px;background-color: blue;"></div>
</body>
</html>
运行项目后,使用浏览器访问three.jsp页面,可以看到其他三个页面在一个页面中的效果:
taglib指令
本章节内容,到这里结束。
以上是关于Jsp第六课 Jsp简介和初步使用的主要内容,如果未能解决你的问题,请参考以下文章