Servlet做为一个动态网页开发技术太不靠谱。尤其是需要编写一个页面的时候,需要指定页面的模板标签、还要处理很多的业务逻辑。因此比较繁琐。
思考:Servlet为什么写一个页面那么吃力?
主要的原因在于Servlet实在java中写标签。
鉴于以上的原因那么SUN提供了动态网页开发技术之JSP。
JSP即Java Server Page。可见JSP本身是页面,那么在页面那种编写HTML标签应该非常轻松。
一 JSP体验
<body> system date: <%=new java.util.Date() %> </body>
总结:
- servlet就是在java中写html比较烦,servlet是做获取参数并请求转发。
- 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 [email protected]
总结:所有的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!"); } %>
时间: 2024-11-07 22:13:40