Web开发4:JSP转换为Servlet源代码深度解析

JSP的注释写法是:<%--JAVA代码--%>

如下语句中,不需要加;作为结束符。如下:

<%=new java.util.Date().toLocaleString() %>

反之在代码片段中要加;号作为分隔符。 

表达式:

 脚本段:

 

 

 

再看下面这个例子:

 

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html> 
  <body>
    <%!int a = 3; %>
    <%int b =3; %>
    <%=a--%>
    <%=b--%>
  </body>
</html>

 上例中的a使用声明语句来声明,而b在脚本段中声明。访问该JSP页面时,第一次在页面中会显示两个3 3,不断刷新页面会变成2 3,1 3。。。,即a的值会不断减1,之所会这样,是因为在产生的Servlet代码中,a是一个类的全局变量,而b是一个方法中的局部变量,由于Servlet是单例模式,即只会产生一个实例,故全局变量一直在内存中,所有用户都能访问到它,只有重启服务器才会重新初始化实例。

 

JSP的forward标签:

新建两个 JSP页面:分别为 forward.jsp和forwardto.jsp

forward.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <body>
  	<jsp:forward page="forwardto.jsp">
  		<jsp:param name="username" value="hello"/>
  	</jsp:forward>
  	<!-- 下面这句不会执行 -->
  	<%System.out.println("hello"); %>
  </body>
</html>

 

forwardto.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<html>
  <body>
  	<%
  		String username = request.getParameter("username");
  		out.print("welcome "+username);
  	 %>
  </body>
</html>

在forward.jsp页面中,执行到forward标签后,就会跳转到forwardto.jsp页面,后面的代码将不再执行。forwardto.jsp页面将接收forward.jsp页面转来的参数。

 

实例:

included.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <body>
  	<%
  		String username = request.getParameter("username");
  		out.print("username is " + username);
  	 %>
  </body>
</html>

 

include.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <body>
  	<jsp:include page="included.jsp">
  		<jsp:param name="username" value="king"/>
  	</jsp:include>
  </body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值