Jsp简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP的编译器指引与指令组件
编译器指示 <%@编译器指示 %>
声明 <%!声明 %>
表达式<%= 表达式 %>
程序代码段/小型指令 <% 程序代码片段 %>
注释 <%--注释 --%>
下面我给出几个用jsp写的经典小例子
乘法口诀
<%
for(int i=1;i<=9;i++){%><%
for(int j=1;j<=i;j++){%>
<%=j%>*<%=i%>=<%=i*j%>
<%} %>
<br/>
<% } %>
输出三角形
<% for(inti=0;i<9;i++){%><%
for(int j=9;j>i;j--){%>
<%=" " %>
<% }%>
<% for(int j=0;j<i;j++){%>
<%="* " %>
<% }%>
<br/>
<% }%>
一千以内的水仙花数
<%
for (int i = 100; i < 999; i++) {
int b, s, g;
b = i / 100;
s = (i - b * 100) / 10;
g = i - b * 100 - s * 10;
if (i == g * g * g + s * s * s + b *b * b) {
%>
<%=i%>
<%
}
%>
<%
}
%>
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP 2.0规范中共定义了三个指令:
page指令
Include指令
taglib指令
JSP指令简介
JSP指令的基本语法格式:
<%@ 指令 属性名="值" %>
举例:<%@page contentType="text/html;charset=UTF-8"%>
如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。
例如:
<%@ pagecontentType="text/html;charset=gb2312"%>
<%@ pageimport="java.util.Date"%>
也可以写作:
<%@pagecontentType="text/html;charset=gb2312"import="java.util.Date"%>
page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
使用page指令解决JSP中文乱码
JSP程序存在有与Servlet程序完全相同的中文乱码问题
输出响应正文时出现的中文乱码问题
读取浏览器传递的参数信息时出现的中文乱码问题
JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题
JSP引擎将JSP源文件翻译成的Servlet源文件默认采用UTF-8编码,而JSP开发人员可以采用各种字符集编码来编写JSP源文件,因此,JSP引擎将JSP源文件翻译成Servlet源文件时,需要进行字符编码转换。
如果JSP文件中没有说明它采用的字符集编码,JSP引擎将把它当作默认的ISO8859-1字符集编码处理。
如何解决JSP引擎翻译JSP页面时的中文乱码问题
通过page指令的contentType属性说明JSP源文件的字符集编码
page指令的pageEncoding属性说明JSP源文件的字符集编码