JSP简介
JSP(Java Server Pages) 运行于服务器端 嵌入了Java代码的网页就是JSP
JSP和HTML的区别
HTML是静态页面 事先由写好放在服务器上 用户访问 就发送该HTML文件展示页面
JSP页面是由JSP容器执行该页面的Java代码部分 实时生成HTML页面 服务器再发送HTML文件展示页面
JSP和JavaScript的区别
JavaScript源代码被服务器发送到浏览器(客户端),由客户端执行,因此在浏览器(客户端)可以看到JavaScript源代码,而JSP中的Java代码不会
语法
注释
在客户端可以显示的 <!-- -->
注释
JSP注释 <%-- --%>
不能在客户端显示的
JAVA注释 //单行注释 /*多行注释*/
JSP表达式
<%=字符串%>
JSP程序段
<% Java代码 %>
Ps:不能在JSP程序段中定义函数
JSP声明
<%! 声明 %>
在JSP声明中定义的变量是网页级别的,系统会优先执行,使用JSP声明后可以在JSP的任何地方
但是在声明中只能做定义 不能输出什么的
例:
<% out.print(str) %>
<% ! String str ="welcome"; %>
URL传值
在不同的JSP之间传递值的方法 可以用URL传值
例:http://localhost:8080/index.jsp?m=3&n=5
那么在访问index.jsp时就可以传递两个参数进去 m和n
但是还要在index.jsp的代码中调用以下命令获得m和n
<%
String str=request.getParameter("m");
%>
ps:如果没有该名字的参数 赋值null
但是有两个缺点
1.传递的数据只能是字符串
2.具体的值会被看到 不安全
JSP指令
这里指的不是<% %>中的Java代码
而是这种形式的指令
<% @ 指令类别 属性类别1=“属性值1”.........%>
通常出现在顶部的命令
<% @ page language="java" contentType="text/html;charset=gb2312" %>
指令类别包含三个
- page
- include
- taglib
page指令用来设定页面的属性和相关的功能
1.导入包 import="包名称"
2.设定字符集 pageEncoding="编码类型"
3.设置错误页面 errorPage="错误页面.jsp” (错误页面中的page的属性isErrorpage=“true”)
4.设定MIME类型和字符编码 contentType="MIME类型 ; charset=字符编码"
include可以用来代码重用 比如网页头尾的导航栏和公司信息
<% @ include file="文件名" %> 这里的文件可以是JSP,HTML,Java程序,文本
相当于代码复制 所以可能会出现变量名相同的问题
JSP动作
使用XML语法格式的标记来控制服务器的行为
<jsp:动作名 属性1="属性值1" ........./>
或者
<jsp:动作名 属性1="属性值1" .......>相关内容 </jsp:动作名>
- jsp:include
- jsp:forward
- jsp:useBean
- jsp:setProperty
- jsp:getProperty
- jsp:plugin
这里讲include和forward
<jsp:include page="文件名" />
jsp:include动作作用和JSP指令中的include相似
但是
1.jsp:include是将输出结果包含进来 相同变量名的问题不会出现
2.jsp:include可以实时监测到被包含的文件改动情况并更新 而JSP指令服务器不一定检测得到
jsp:forward跳转到某个页面
<jsp:forward page="文件名" />
表单开发