前言:
JSP(Java Server Page)虽然作为一门服务端的语言,但它并没有创新新的语言标准。有些人一接触jsp之后发现易学易懂。实际上,jsp的内部原理仍然是基于Servlet,它是Servlet的补充,而并不是要取代Servlet。本文对JSP的一些概念及基础内容进行了不详尽的总结,希望感兴趣的博友凑合着看~
-------------
1.常见指令
(1)page指令:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
其中,各属性详细说明见下表:
import
|
使一个JAVA导入声明被插入到最终页面文件(可分多次导入)。
|
contentType
|
规定了生成内容的类型。当生成非HTML内容或者当前字符集character set并非默认字符集时使用。
|
errorPage
|
处理HTTP请求时,如果出现异常则显示该错误提示信息页面。
|
isErrorPage
|
如果设置为TRUE,则表示当前文件是一个错误提示页面。
|
isThreadSafe
|
表示最终生成的servlet是否安全线程(threadsafe)。
|
(2)include指令:
<%@include file="demo"%>
2.脚本元素:
3.动作:
动作(Action)指的是被编译成执行某些操作的Java代码,常见的有
jsp:include
|
区别与include指令,当处理完该JSP页后就马上把控制权交还当前JSP页。这样JSP代码就可以在多个JSP页中共享而不用复制。
|
jsp:param
|
可以在jsp:include, jsp:forward或jsp:params块之间使用。指定一个将加入请求的当前参数组中的参数。
|
jsp:forward
|
用于处理对另一个JSP或SERVLET的请求和响应。控制权永远不会交还给当前JSP页。
|
jsp:plugin
|
这个动作产生为嵌入一个APPLET所需要的指定浏览器标签。
|
jsp:fallback
|
如果浏览器不支持APPLETS则会显示的内容。
|
jsp:getProperty
|
从指定的JavaBean中获取一个属性值。
|
jsp:setProperty
|
在指定的JavaBean中设置一个属性值。
|
jsp:useBean
|
创建或者复用一个JavaBean变量到JSP页。
|
实验1:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <title>Insert title here</title> 7 </head> 8 <body> 9 <h2>第一个jsp页面</h2> 10 </body> 11 </html>
实验2:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <% //内嵌的java代码 String name="Jack"; %> <%! //声明方法 public String printTime(){ return "当前时间"+new java.util.Date(); } %> <body> <!-- 表达式输出 --> Hello,<%=name %> <%=printTime() %> </body> </html>
测试结果:
jsp的9个内置对象分别表述如下:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <title>Insert title here</title> 7 </head> 8 <body> 9 <% 10 //request获取参数及设置参数 11 request.setAttribute("time", new java.util.Date()); 12 String timeNow = request.getParameter("time"); 13 //out以html格式将内容输出到浏览器 14 out.print("welcome!"+timeNow); 15 //session设置参数,会话信息可跨多个页面 16 session.setAttribute("time",new java.util.Date()); 17 %> 18 </body> 19 </html>
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <title>Insert title here</title> 7 </head> 8 <body> 9 <h2>内置对象</h2> 10 <a href="test2.jsp?name=admin">请求测试1</a> 11 <a href="#">请求测试2</a> 12 <br> 13 request获得参数:<%=request.getParameter("name") %> <br> 14 当前项目名:<%=request.getContextPath() %> <br> 15 请求的IP地址:<%=request.getLocalAddr() %> <br> 16 17 </body> 18 </html>
测试结果:
-------------------------------
注:
本文内置对象部分的内容综合参考自其他技术博文及百科相关补充!