第一个jsp的案例
JSP: Java Server Page Java服务器端页面。
1、第1个JSP程序
准备工作:先创建一个web项目
a)JSP文件放置位置:在WebRoot文件夹下,不能在WEB-INF和lib里
b)JSP文件必须以.jsp结尾 xxx.jsp
c)JSP文件的构成:html标签 + java代码
d) JSP的访问方式:
http://ip地址:port/项目名/jsp文件路径
http://localhost:8080/项目名/first.jsp
Jsp用来替换之前的jsp类型的servlet。他能在html代码里面增加进去java代码。 并解决了jsp类型的servlet的一些问题。
JSP程序的一些特点:
- ①a) Jsp直接是一个类似于html的文件。放在webroot文件夹里面。这个文件夹里面的文件会直接部署到tomcat里面的项目的根目录里面。
- ②文件修改后,jsp程序不需要重启tomcat看效果。
- ③Jsp文件的运行的过程
这个过程产生的所有文件内容都是可以看到的。
First.jsp在项目的部署目录里面。
First_jsp.java在tomcat的work目录里面可以看到。
First_jsp.class在tomcat的work目录里面可以看到。
Html源码在浏览器里面右键查看源码可以看到。
整个过程在jsp接受第一次请求的时候完整的执行了一次。后续的请求,tomcat会自动去执行class文件,而不再进行翻译和编译了。
Jsp页面的内容组成
1.脚本
a) 输出脚本(表达式脚本)
语法:<%= %>
作用:是在html源码中去打印一个变量,替代out.print();
注意事项:输出脚本的最后不添加标点。不能有分号。
b) 普通脚本
语法:<% %>
作用:在jsp里面运行java代码。被普通脚本符号括起来的空间是java的运行环境。
注意事项:
1.一段java代码是可以被拆到多个普通脚本里面的。
2.普通脚本环境里面直接不能写html代码。
3.普通脚本环境中不能直接写输出脚本。
c) 声明脚本(了解)
语法:<%! %>
作用:在jsp文件中声明方法和变量。这些方法和变量会作为jsp与之对应的servlet的属性和方法。
2.html源码
在jsp文件里面直接写html源码。
3.注释
A)Java代码
<% //Java注释 %>
B)Html代码
<!-- html的注释 -->
C)Jsp注释
<%-- --%>
三种注释的区别:
Jsp运行过程:
1.翻译阶段2.编译3.运行生成html源码4.浏览器解析html代码。
Jsp的注释是在翻译的阶段生效的。
Java的注释是在java类编译的时候生效的。
Html的注释是在浏览器解析html代码的时候生效的。
我们优先考虑jsp注释。不要在jsp中使用html注释。原因是:
a不安全
B占用带宽
C注释掉的java代码还是会运行的。只是把运行的结果不显示到浏览器里面。
4.指令
语法:
<%@ 指令名 属性=”值”%>
Page指令
<%@ page 属性名=属性值 属性名2=属性值 ...%>
作用:声明整个jsp文件的一些属性。
常见的属性:
Language:jsp支持的脚本语言,可以省略。
Import:jsp中使用的java类的引入。
Import=”java.io.,java.util.,javax.sql.*”
一个page指令里面只能写一个import属性。
pageEncoding:jsp的编码集。
在Myeclipse中设置jsp新建的默认编码集:
contentType:text/html表示jsp响应给浏览器的数据格式是html文本。
Session:值为true时,表示jsp被访问时,就创建出session对象。默认值为true。
errorPage:当前jsp出异常时要跳转的页面。
isErrorPage:表示当前jsp是不是一个错误页面。
Taglib指令
用来引入jsp所需标签库
语法:
<%@ taglib uri=”” prefix=””%>
Include指令(了解)(静态引入)
用来在当前页面引入包含其他页面
语法:
<%@ include file=””/>
作用:把另外一个jsp页面引入到当前jsp页面中。
注意点:include会在翻译的阶段生效。这时候要求三个页面中不能有相同的变量名。
5.Jsp动作(了解)
Include动作(动态引入)
用来包含其他jsp页面
<jsp:include page=””/>
作用跟include指令是一样的。
注意点:
Include动作会在生成html源码的时机生效
forward:用来向其他jsp页面跳转
语法:
<jsp:forward page=”jsp页面路径 />
注意:开发时 action跳转jsp,jsp不跳转jsp