你的位置:首页 > Java教程

[Java教程]java学习笔记—JSP 1(32)


Servlet做为一个动态网页开发技术太不靠谱。尤其是需要编写一个页面的时候,需要指定页面的模板标签、还要处理很多的业务逻辑。因此比较繁琐。

思考:Servlet为什么写一个页面那么吃力?

主要的原因在于Servlet实在java中写标签。

 鉴于以上的原因那么SUN提供了动态网页开发技术之JSP。

JSP即Java Server Page。可见JSP本身是页面,那么在页面那种编写HTML标签应该非常轻松。

一  JSP体验

<body>  system date: <%=new java.util.Date() %></body>

总结:

  1. servlet就是在java中写html比较烦,servlet是做获取参数并请求转发。
  2. jsp就是html中写java比较烦,jsp主要是显示数据。

JSP运行原理

JSP本质是一个Servlet只不过这个Servlet更加善于编写页面。

JSP语法

学习JSP应该从以下几个方面学习:

1  JSP模板元素

JSP是在HTML中写java代码,那么JSP中最基本的是HTML元素。我们将这些元素称之为JSP的模板元素。

2  JSP输出表达式

JSP表达式主要用于输出变量以及输出表达式。

语法:

<%= 表达式 %>表达式后面不能有分号。

举例1:输出一个表达式。

2>1 = <%= 2>1 %> <br/><%=page %> <br/>

运行结果

2>1 = true org.apache.jsp.index_jsp@1135cd9

总结:所有的JSP页面中的输出表达式会被翻译在java类中的_jspService()并使用out.write()方法进行了封装。

该输出表达式还可以输出变量,但是当前需要先定义一个变量。

3  JSP脚本

JSP脚本主要用于定义局部变量和编写JAVA业务代码。

语法:<% JAVA代码 %>
举例1:使用JSP脚本定义变量。<% int sum = 0; %>sum = <%= sum %><br/>

总结:JSP脚本被翻译在_jspService()中,使用该语法定义的变量全部是局部变量。因此不能添加任何的变量修饰符。

举例2:使用JSP脚本实现页面的倒三角输出。

<%   for(int i = 0; i<6; i++){    for(int j = i; j<6; j++){%>    *  <%       }  %>  <br/>  <%    }  %>

举例3:使用JSP脚本输出H1~H6的各级标题。

<%   for(int i = 1; i < 7; i++){%>   <h<%=i %>>www.itcast.cn</h<%=i %>>   <%   }  %>

总结:

使用JSP脚本是否可以定义方法和类?  方法中不能继续写方法,但是可以定义局部内部类。

举例4:定义局部内部类。

<%   class Inner{    public int age = 30;    public int getSum(){     return 90;    }  }%>  <%= new Inner().age %><br/>  <%= new Inner().getSum() %><br/>

4 JSP声明

JSP声明主要是声明类的成员变量和方法。

语法:

<%! 声明成员 %>

举例1:声明一个成员属性。
···<% int x = 20; // _jspService() %> <%! private int x = 10; // index_jsp.java %> <%= x %> // 20
如果必须要访问访问到10,那么可以使用以下的语句
<%= this.x %>

举例2:定义一个成员方法。
<%! public String sayHello(String name){ return "hello : "+name; }%> <%= this.sayHello("jnb") %><br/>

举例3:实现JSP生命周期方法的重写。
<%! static { // 类加载的时候执行 System.out.println("loading Servlet!"); } private int globalVar = 0; public void jspInit() { // 初始化方法 System.out.println("initializing jsp!"); } %> <%! public void jspDestroy() { // 销毁方法 System.out.println("destroying jsp!"); } %>