JSP(一)--部署web应用/JSP运行原理/在 myeclipse环境中集成tomcat/脚本元素/指令元素/动作元素/动态包含/转发/传递参数

JSP引入

1.JSP:java server pages也就是java服务器页面。

2.JSP是一套动态网页技术标准。这个标准由各大web服务器厂商实现。

3.我们运行一个java程序,需要在源代码中输入main方法,但是我们学习JSP技术,是不需要main方法的。一个JSP页面,必须有web服务器来解析运行。需要注意的是,jsp文件不能双击运行,也不能用浏览器打开运行,也不能javac编译,必须交给web服务器来运行。


tomcat的使用步骤(部署web应用)

1.进入%tomcat_home%,再进入bin目录,选择starup.bat,双击后会出现一个窗口:不要关闭该窗口。
这里写图片描述

2.测试tomcat服务是否成功启动:打开浏览器,键入网址:localhost:8080,如果出现以下页面,代表启动成功。
这里写图片描述

3.再次进入%tomcat_home%中的webapps目录中,自己创建一个文件夹,但是不能用中文命名。进入该文件夹,在文件夹中创建jsp文件,最后在浏览器地址栏中输入http://localhost:8080/foo/a.jsp 才能运行jsp文件(其中foo就是文件夹名,a.jsp就是创建的jsp文件)。

注意:必须保证电脑上安装了JDK,并且配置了java_home环境变量,才能启动tomcat。


JSP运行原理

这里写图片描述

注意
1. jsp文件,不能被直接执行,jsp只是一个草稿,目的就是为了生成java源文件;
2. java源文件不能执行,java源文件就是为了被javac编译成class文件;
3. 我们最终执行的就是class字节码文件。

结论:jsp—>java—>class


在 myeclipse环境中集成tomcat

1.点击图中所示小三角:
这里写图片描述

2.选择Configure Server:
这里写图片描述

3.选择Server–>Tomcat–>Tomcat 6.x:
这里写图片描述

4.这里选择enable后,只需要点击第一个browser按钮,选择tomcat根目录,后面的几项不用管:
这里写图片描述

完成上述步骤tomcat就部署好了,新建jsp文件后,点击部署按钮,再启动服务器,就可以在浏览器中键入地址运行jsp文件了。需要注意的是,有的myeclipse版本中自带有tomcat,就不需要通过上述步骤再集成tomcat了,直接在myeclipse中点击部署按钮,然后启动服务器就可以了。


jsp中各种元素

1.脚本元素:
<%%>
<%!%>
<%=%>
<%– – %>

2.指令元素:
page
include
taglib

3.动作元素


jsp脚本元素

1.脚本元素
(1)<%%>
该脚本段中的内容,最终会出现在一个java方法中。
所以java的方法中能写什么内容,在<%%>中就能写什么内容;
java的方法中不能写什么内容,在<%%>中就不能写什么内容。
这里写图片描述

(2)<%!%>
该脚本段中的内容,会出现在类之内,方法之外。
所以java的类中方法外能写什么内容,在<%!%>中就能写什么内容;
java的类中方法外不能写什么内容,在<%!%>中就不能写什么内容。
这里写图片描述

(3)<%=%>
该脚本段中的内容,最终会成为out.print()的参数。
所以java的方法参数中能写什么内容,在<%=%>中就能写什么内容;
java的方法参数中不能写什么内容,在<%=%>中就不能写什么内容。
这里写图片描述

(4)<%– –%>
该脚本段中的内容,用于告诉web服务器,在把一个jsp文件解析成一个java源文件的过程中,忽略该脚本中的内容,也就是说<%– –%>脚本中的内容不会出现在java源文件中。

对比:// /**/注释的内容会出现在java源文件中。

对比:<!----> 不但会出现在java源文件中,还会被服务器发送给客户端浏览器。

注意:以上三种代码,只有<!---->能在客户端浏览器的源代码中看到。所以有两种术语:
客户端注释:<!---->
服务器注释:<%– –%> // /**/

2.注意:jsp只有在第一次被访问的时候,才会实例化对象,第2,3,4,5,……,n次访问同一个jsp页面的时候,都使用的是第一次创建好的实例。


jsp指令元素

1.指令元素:所有的指令元素,都是<%@ %>

2.page:学习page指令元素,就是学习page指令元素的属性。常见的属性有:
这里写图片描述

注意:contentType用于控制下载的文件的名字的代码如下:

// 该行代码用于控制,下载文件的名字
    response.setHeader("content-disposition","attachment;filename=abc.xls");
%>

3.include:静态包含,就是把目标页面包含到<%@include file=""%> 代码处。

这里写图片描述


jsp动作元素

1.动作元素:所有动作元素都是<jsp:xxx>

<jsp:useBean/>等价于实例化对象
<jsp:setProperty/>等价于给对象的属性赋值
<jsp:getProperty/>等价于获取对象的属性,并且发送给客户端浏览器。

注意
<jsp:useBean/>会回调公共的无参构造器。
<jsp:setProperty/>会回调对应的setter方法。
<jsp:getProperty/>会回调对应的getter方法。

2.JavaBean就是一个普通的Java类,只不过这个类要符合一些规范。
JavaBean的规范

(1)所有属性必须私有化;
(2)必须为私有属性提供公共的getter(获取器)和setter(设置器);
(3)必须提供一个公共的无参的构造器;
(4)必须实现序列化接口:java.io.Serializable。

3.在同一个web应用中:
(1)src目录下是用来编写java源文件的;
(2)src下定义好的java类,最终能在WebRoot目录下的jsp文件中使用。

实际上,在一个web应用下的src定义的java源文件,会被编译,编译出来的字节码文件会自动被部署到tomcat服务器下,路径就是/web应用名/WEB-INF/classes。

而web应用的类路径是由以下三个部分组成的,也就是说,web应用在找一个字节码文件的时候,就会在以下三个范围内找:
(1)/web应用名/WEB-INF/classes
(2)JRE System Library
(3)Java EE 5 Libraries

4.代码示例:
这里写图片描述

5.因为在mvc架构中,要求jsp页面上不得出现java代码,所以要把java代码,都用相应的jsp标签替换。


动态包含

1.动态包含<jsp:include/>
这里写图片描述

2.静态包含与动态包含的区别
(1)静态包含是先包含,后编译。最终只能生成一个java源文件,class字节码文件也是一个。
动态包含是先编译,后包含。最终生成多个java源文件,class字节码文件也是多个。
(2)静态包含不能用变量名作为路径;动态包含可以用变量名作为路径。
这里写图片描述
(3)静态包含不能被包含的目标jsp页面传递参数;动态包含可以。
(4)一个页面上的多个静态包含的页面中,不能由同名的变量;动态包含可以。

注意:如果有一种场景,既能使用静态包含,又能使用动态包含,那么应该使用静态包含,因为静态包含总共只会编译一次,速度快。


转发

1.转发<jsp:forward/>

2.代码:

<jsp:forward page="next.jsp"></jsp:forward>

不用点击,就会展示next.jsp页面的内容。


传递参数

1.传递参数<jsp:param/>

2.如何给服务器传递请求参数
(1)通过表单:
这里写图片描述

(2)不需要表单,直接在url后面加上?参数名1=参数值1&参数名2=参数值2……
这里写图片描述

(3)直接在超链接的url后面写出参数即可:
这里写图片描述

(4)通过window,location=”url?请求参数”
这里写图片描述

(5)用<jsp:param/>给服务器传递参数,但是必须搭配<jsp:include/>或者<jsp:forward/>
这里写图片描述
注意:如果没有给被动态包含的页面传递参数,则<jsp:include></jsp:include>之间不能有任何内容,必须在一起。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/yangruxi/article/details/75125550
今日推荐