JSP的基本语法

JSP的基本语法

一、JSP页面中的JAVA代码

1、JSP表达式(格式:<%=%>)

1     <%=2+2%>
2     <%=xx.getName()%>
3     <%=xx.getName()+“str”%>

注意:表达式结束不需要写分号。

这种形式的Java代码在转译成Servlet时,<%= %>内的代码会成为service()方法中使用out.print语句的输出。

1     out.print(2+2);
2     out.print(xx.getName());
3     out.print(xx.getName()+“str”));

2、JSP小脚本(格式:<%%>)

 1     <table>
 2     <% 
 3        List<Student> students = (List<Student>)request.getAttribute(“students“);
 4        for(Student st : students){
 5     %>
 6               <tr>
 7                   <td> <%=st.getId()%>    </td>
 8                   <td> <%=st.getName()%>  </td>
 9               </tr>
10     <%
11         }
12     %>
13     </table>

以上代码使用小脚本动态生成一个表格。<% %>内的代码最终都会成为service方法的一部分,转换结果如下:

 1     public void service(…){
 2       out.write(“<table>”);
 3       List<Student>  students = (List<Student>)request.getAttribute(“students“);
 4       for(Student st : students){
 5          out.write(“<tr> <td>”);
 6          out.print(st.getId());
 7          out.write(“</td><td>”);
 8          out.print(st.getName());
 9          out.write(“</td></tr>”);
10       }
11       out.write(“</table>”);
12     }

3、JSP声明(格式:<%! %>)

1     <%!
2         private String name; //属性声明
3 
4         public void fun(){   //方法声明
5             //…  方法体
6         }
7     %>

 JSP声明<%! %>内的代码可以为对应的Servlet添加属性和方法,转换为Servlet之后的结果如下:

 1     public class XXX_JSP extends JSPBase{
 2         private String name; //属性声明
 3        
 4         public void fun(){    //方法声明
 5            // … 方法体
 6         }
 7 
 8          public void  service(… …){
 9                
10          }
11     }

二、JSP页面中的指令

1、page指令

page指令可以导入java包,也可以对页面的一些属性进行设置。

1     <%-- 导包 --%>
2     <%@ page import=“java.util.*“%>
3     <%@ page import=“java.util.*,java.sql.*“%>
4 
5     <%-- 设置response.setConentType方法的参数值 --%>
6     <%@ page contentType=“text/html;charset=utf-8“%>
7 
8     <%-- 设置容器读取该文件时的解码方式 --%>
9     <%@ page pageEncoding=“UTF-8“%>

(1)使用page指令导包时,需要用到import属性。如果需要导入多个包,可以分成多条page指令来编写,也可以在一条page指令中,使用“,“逗号作为分隔来实现。

(2)contentType属性,设置输出内容的编码方式,这样就可以设置浏览器使用正确的解码方式来显示页面。

(3)pageEncoding属性,设置容器读取该文件时的解码方法,这段代码可以保证页面在加载到内存时正确的解码中文。

注意,page指令要放在页面的最上面编写。

2、include指令

include指令主要用于将其他页面包含在另一个页面之中,可以实现页面内容的重用。include指令的语法如下:

1 <%@ include file=“thetitle.html” %>

3、taglib指令

可引入JSTL的标签库,将标签库对应的jar包拷贝到WEB-INF/lib目录下,以便于系统可以加载所需要的类。使用taglib指令在页面上引入标签的命名空间和前缀,帮助系统定位对应的类。

1     <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

三、JSP页面中的隐含对象(九大内置对象)

由于JSP页面最终要转化为一个Servlet,而作为即将转变为Servlet的一个前期版本,会有很多系统提供给页面能够直接使用的对象,根据页面中要实现的功能直接使用即可。具体的隐含对象信息见下表:

隐含对象 类型 说明
request HttpServletRequest 代表请求对象
response HttpServletResponse 代表响应对象
out JSPWriter 输出流
session HttpSession 会话
application ServletContext 全局的Servlet上下文对象
pageContext PageContext JSP页面上下文
page Object 代表JSP页面本身,即this
config ServletConfig Servlet配置对象
exception Throwable 捕获的页面异常对象
原文地址:https://www.cnblogs.com/koala2016/p/5680353.html