这里首先对一篇上一篇里面说到的一点补充一下:myEclipse会自动编译jsp里面的java代码,但是有时候也许由于tomcat突然崩溃,或者其他一些原因使得不能够达到自动重新编译
,那么,就可以将work下的java文件和 .class文件重新删除后在重新访问该网页。那么tomcat里的jdk就会重新编译,就会达到效果了。
=================================================================================================================
web技术里面最首先了解到的就是jsp,首先,就是对其概念有一定的了解。
一.jsp概念:jsp( java server page)称为动态页面技术, java服务器页面技术.
二. jsp的运行过程:html代码包含的java代码在服务器里翻译,编译后,将最终的html发送给客户端,并且在服务器中运行编译成 .class文件和java文件保存在 tomcat的work目录
下以便之后访问时直接运行.
(PS:在work/Catalina/localhost/项目名/org/apache/jsp/ 页面名_jsp.java 打开这个文件可以看到这个java文件是一个final类.因此,当用<%! %>定义的方法只能在本文件中运用,
不能被继承,所以定义方法时还是在src里,这样才可以用实现方法的共用.)
三.jsp页面的结构:
1.静态部分: html, css, javascript (包含注释)
2.动态部分: jsp元素
四. 指令(以<%@ %>形式)
1.编译指令: 只在编译时起作用,不会有任何输出 ( 对比的话,就像是java中 import ,而jsp的编译指令包含一个小模块, 导入标签库 )
(1) <%@ page 属性名="值" %> 导入的类的说明, 编码集
page主要属性:
language--指定jsp中使用的脚本元素是会采用的语言。(不过目前容器已实现的脚本语言又有java,以后应该会支持更多语言)
pageEncoding--指定jsp中的字符编码方式。(如果要求支持中文,可以设置为:GB2312,GBK,UTF-8)
contentType--指定输出内容的类型和编码方式
info--有关页面的描述信息
import--导入的java包
session--设置当前页面session是否可用
...
例如: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% contentType="内容的类型;charset=编码方式的值">
(2)<%@ include file="文件名.jsp" %> 包含另一个页面( 公用的模块 ) 这种通常 叫做静态包含,但其java合并时有时最常遇到的问题就是会出现命名冲突的情况。
例如:当一个门户网站,那么其头部和尾部就可以单独写成一个文件,进行引入就实现的通用
(3)<%@ taglib prefix="前缀名" uri="定义标签地址" %> 导入标签库.
例: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%>
2.动作指令:(个人观点:其实与mvc架构是不太符合的)
<%jsp:include %>
<%jsp:forward %>
<%jsp:param %>
五. 脚本(以<% %>形式):
在jsp页面里的脚本的作用主要用来写逻辑,业务和 输出的。
其中
1.小脚本 格式:<% java代码 %> 主要用于处理逻辑和业务操作
2.声明 格式<%! %> 当其声明变量时,该变量是全局变量不同于<% %>声明的(但其生存期是tomcat的运行期)(也可以用来定义方法,但是这个方法并不能
被其他jsp调用,代码重用性不强)
3. 表达式
<%=值 %> 输出.
六. 注释
一般有两种注释方法:
1.<!-- --> html注释: 是会返回到客户端浏览器上去的,即它要消耗流量 , 对静态代码使用方法 注释一点就好,不要过多的使用
2.<%-- --%> 服务器注释,只要服务器中有,不会消耗流量 。