使用JSP

你写的JSP最终会变成一个servlet在Web应用中运行。它与其他servlet非常相似,只不过这个servlet类会由容器为你编写。

容器拿到你在JSP中写的代码,把这些代码转换为一个servlet类源文件,然后再把这个源文件编译为Java Servlet类。

下面代码是一个Web应用:

先写一个普通计数器类:Counter.java

package foo;
public class Counter{
    private static int count;

    public static synchronized int getCount(){
        count++;
        return count;
    }
}

再写JSP页面:BasicCounter.jsp

<html>
<body>
    The page count is:
    <%
    out.println(Counter.getCount());
    %>
</body>
</html>

运行页面报500,因为Counter类在foo包中,但是JSP不知道。

解决方法:导包

<%@ page import="foo.*" %>

或在代码中使用完全限定类名

out.println(foo.Counter.getCount());

 

Java代码放在带百分号的尖括号中间:<%和%>

指令会为元素开始记号再增加一个字符:@,<%@开始的JSP代码,应该知道这是一个JSP指令。

上面的JSP代码还是有out.println()语句。引入JSP,部分原因就是为了避免大量的println()语句出现,有JSP表达式元素,表达式元素会自动打印放在标记之间的内容。

<%= Counter.getCount()%>//里面不加;

<%
    out.println(Counter.getCount());
    %>

作用相同

因为:容器拿到你在<%=和%>之间键入的所有内容,会把它作为参数传递给打印语句。上面的表达式会转换成下面这行代码:

out.println(Counter.getCount());

加上分号,就成为下面这样,就是错误的:

out.println(Counter.getCount(););
<%int count=0;%>

每次运行服务方法时这个变量都会重新初始化。这说明对于每个请求它都会重置为0。

JSP声明:声明的JSP元素

<%! int count=0; %>

方法声明。

<html>
<body>
    <%! 
    int doubleCount(){
    count = count*2;
    return count;}
    %>
    <%! int count=1; %>
    The page count is now:
    <%= doubleCount() %>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值