欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP语法之脚本、指令、注释的综合例子

程序员文章站 2022-06-01 22:42:16
...

JSP是我们的企业级动态网页的基本技术,实质上来说JSP在HTML静态语言中使用java代码的技术。所以我们需要理解java的代码在html语言中的使用语法:
1.语法:

1)<%java代码%> ----- 内部的java代码翻译到service方法的内部
2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print()
3)<%!java代码%> ---- 会被翻译成servlet的成员的内容

2.JSP的原理
注意:JSP的实质就是servlet:
jsp在第一次被访问时会被Web容器翻译成servlet,在执行
过程:
第一次访问—->helloServlet.jsp—->helloServlet_jsp.java—->编译运行
PS:被翻译后的servlet在Tomcat的work目录中可以找到

3.指令
jsp的指令是指导jsp翻译和运行的命令,jsp包括三大指令:
1)page指令 — 属性最多的指令(实际开发中page指令默认)
属性最多的一个指令,根据不同的属性,指导整个页面特性
格式:<%@ page 属性名1= “属性值1” 属性名2= “属性值2” …%>
常用属性如下:
language:jsp脚本中可以嵌入的语言种类
pageEncoding:当前jsp文件的本身编码—内部可以包含contentType
contentType:response.setContentType(text/html;charset=UTF-8)
session:是否jsp在翻译时自动创建session
import:导入java的包
errorPage:当当前页面出错后跳转到哪个页面
isErrorPage:当前页面是一个处理错误的页面

2)include指令
页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
格式:<%@ include file=”被包含的文件地址”%>

3)taglib指令
在jsp页面中引入标签库(jstl标签库、struts2标签库)
格式:<%@ taglib uri=”标签库地址” prefix=”前缀”%>

3.JSP的隐藏默认属性:jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,我们在jsp 脚本中可以直接使用这9个对象:

名称 类型 描述
out javax.servlet.jsp.JspWriter 用于页面输出
request javax.servlet.http.HttpServletRequest 得到用户请求信息,
response javax.servlet.http.HttpServletResponse 服务器向客户端的回应信息
config javax.servlet.ServletConfig 服务器配置,可以取得初始化参数
session javax.servlet.http.HttpSession 用来保存用户的信息
application javax.servlet.ServletContext 所有用户的共享信息
page java.lang.Object 指当前页面转换后的Servlet类的实例
pageContext javax.servlet.jsp.PageContext JSP的页面容器
exception java.lang.Throwable 表示JSP页面所发生的异常,在错误页中才起作用

4.例子“:”
起始页面:
JSP语法之脚本、指令、注释的综合例子

结果:
JSP语法之脚本、指令、注释的综合例子

例子代码:
1.forward:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="utf-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>作业提交</h2>
<form action="checkEmail.jsp" method="post">
请输入邮箱地址:<input name="email" type = "text" size="15"> <input type="submit" value="提交">
</form>
</body>

2.checkEmail:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
    String email = request.getParameter("email");
    if(email.equals("")){
%>
<jsp:forward page="result.jsp">
    <jsp:param value="0" name="result"/>
</jsp:forward>
<%} else {%>
<jsp:forward page="result.jsp">
    <jsp:param value="1" name="result"/>
    <jsp:param value="<%=email %>" name="email"/>
</jsp:forward>
<%}%>
</body>
</html>

3.result

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>提交成功结果:</h2>
<%
    String result = request.getParameter("result");
    if (result.equals("0")){
%>
<p>结果订阅失败!</p>
<%}else{ %>
    <p>结果:<%=request.getParameter("email") %>作业提交成功</p>
    <% }%>
</body>
</html>