1.简介
JSP是指java server page, Servlet是Java Web开发的重要基础,但是由于Servlet开发相对繁琐,代码量庞大而且不易维护,美工无法参与界面设计开发等不足,于是就诞生了jsp。jsp是对servlet开发模型的重要升级。有了jsp,Java Web开发技术才真正被广泛使用。
2.基本语法
- HTML页面内容
- JSP注释
- JSP指令
- JSP脚步元素
- JSP动作元素
1)JSP注释
html注释:
<!--注释内容-->
jsp注释:
<%--注释内容--%>
或者使用java注释//
2)JSP指令
格式:
<%@指令标记 [属性="值" 属性="值"]>
- page指令:
<%@ page [属性1="值" 属性2="值"]>
- include指令:
<%@ include file="被包含文件的地址">
- taglib指令:
<%@ taglib uri="tagLibraryURI" prefix="tagPrefix">
uri:指定标签获取标签库的存放文字
prefix:指定该标签库所使用的前缀
第一个jsp测试:
- 首先在web下面创建文件夹webjsp或者其他名称,与WEB-INF同级
- 在webjsp里面创建test.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<%
out.println("Hello World!");
%>
</body>
</html>
- 浏览器可以直接访问,注意web是站点上下文,在deployment可以设置:
http://192.168.2.221:5339/web/webjsp/test.jsp
3)JSP脚本元素
通过jsp脚本可以将java代码嵌入到html页面中,所有可执行的java代码都可以通过jsp脚本执行。
脚本元素包含三种类型:
- jsp脚本声明语句
<%! 声明变量或者方法定义 %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<%!
public String string ="Hello World223333";
%>
<%
out.println(string);
%>
</body>
</html>
- jsp表达式
表达式的值将会作为html页面的内容,相当于省略了out.println
<%= 表达式 %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<%!
public String string ="Hello World223333";
%>
<%= string %>
</body>
</html>
- jsp Scriptlet
在jsp Scriptlet中声明的变量是jsp的局部变量,调用jsp Scriptlet时会为
局部变量分配内存空间,调用结束后,释放局部变量战友的内存空间。
<% java代码 %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<%
String string ="Hello World223333";//声明变量并输出字符串
out.println(string);
%>
</body>
</html>
3)JSP脚本元素
利用JSP动作可以动态地插入文件、重用JavaBean组件、
把用户重定向到另外的页面、为Java插件生成HTML代码。
<jsp:action_name attribute="value" />
<jsp:include page="相对 URL 地址" flush="true" />
** test1.jsp**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
** test.jsp**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<h2>include 动作实例</h2>
<jsp:include page="test1.jsp" flush="true"/>
</body>
</html>
jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出
<jsp:useBean id="name" class="package.class" />
添加TestBean
public class TestBean {
public String message;
//注意 如果没有setter和getter,将会报以下异常
//Cannot find any information on property 'message' in a bean of type 'beans.TestBean'
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
添加Test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<jsp:useBean id="test" class="beans.TestBean"/>
<jsp:setProperty name="test"
property="message"
value="测试message.."/>
<p>输出信息....</p>
<jsp:getProperty name="test" property="message"/>
</body>
</html>
jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page
<jsp:forward page="相对 URL 地址" />
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个 JSP 程序</title>
</head>
<body>
<jsp:forward page="test1.jsp" />
</body>
</html>
jsp:param是一种提供参数的附属动作元素
jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。
如果需要的插件不存在,它会下载插件,然后执行Java组件。
<jsp:element>
、<jsp:attribute>
、 <jsp:body>
动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态
jsp:text动作元素允许在JSP页面和文档中使用写入文本的模板
** test1.jsp**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title><h3>用户信息</h3></title>
</head>
<body>
<% String userName = request.getParameter("name");
String age = request.getParameter("age");
%>
<%="名称:" + userName%>
<br>
<%="年龄:" + age%>
<h4>用户:</h4>
</body>
</html>
** test.jsp**
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title> JSP 程序</title>
</head>
<body>
<jsp:forward page="test1.jsp">
<jsp:param name="name" value="bifan"/>
<jsp:param name="age" value="22"/>
</jsp:forward>
</body>
</html>
4)JSP内置对象
request
response
out
session
application
config
pageContext
page
Exception