传智播客——JSP(一)
来源:互联网 发布:网页制作php 编辑:程序博客网 时间:2024/05/18 00:37
一,jsp出现的的原因
看两段代码的对比
1 servlet实现
public class Welcome extends HttpServlet {
int num = 1;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=ISO-8859-1");
PrintWriter out = response.getWriter();
Date d = new Date();
out.println("<html>");
out.println("<head><title>Welcome Servlet</title></head>");
out.println("<body>");
out.println("Today is : " + new Date() + "<P>");
out.println("Visitors : " + num );
num++;
out.println("</body></html>");
out.close();
2,用jsp实现
<%@ page import="java.text.*, java.util.*" %>
<html>
<head><title>Welcome JSP</title></head>
<%! int num = 1; %>
<body>
Today is : <%= new Date() %><p>
Visitors : <%= num++ %>
</body>
</html>
这两者效果完全相同,如果servlet实现的页面代码让美工去优化前台页面,这对于不熟悉java语言的美工来说是灾难,
二,Jsp的执行顺序
1,浏览器发出请求
2,服务器端相应请求,如果由servlet实现则调用相应的servlet
3,如果由jsp实现,则 jsp引擎将jsp文件转化和编译成servlet
三,jsp语法细节
(1)1,JSP原始代码中包含了JSP元素和Template(模板) data两类
2,Template data指的是JSP引擎不处理的部分,即标记<%……%>以外的部分,例如代码中的HTML的内容等 ,这些数据会直接传送到客户端的浏览器
3,JSP元素则是指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。
(2)动态java代码必须包含在特定的标签中
1,jsp标准指令
标准指令用来设定JSP网页的整体配置信息JSP中的全局变量,声明类,要实现的方法和输出内容的类型等特点:它们并不向客户端产生任何输出,所有的指令在JSP整个文件范围内有效为编译译阶段提供了全局信息
语法:
<%@ 标准指令 属性=属性值 %>
<%@ diectivename attribute=“value”, attribute=“value” %>
2,include指令
include指令用于通知JSP引擎在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中,这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面与静态引入的页面紧密结合为一个Servlet。
语法:
<%@ include file="relativeURL"%>
其中的file属性用于指定被引入文件的相对路径。
细节:
被引入的文件必须遵循JSP语法,其中的内容可以包含静态HTML、JSP脚本元素、JSP指令和JSP行为元素等普通JSP页面所具有的一切内容。
被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments)作为静态引入文件的扩展名。
在将JSP文件翻译成Servlet源文件时,JSP引擎将合并被引入的文件与当前JSP页面中的指令元素(设置pageEncoding属性的page指令除外),所以,除了import和pageEncoding属性之外,page指令的其他属性不能在这两个页面中有不同的设置值。
除了指令元素之外,被引入的文件中的其他元素都被转换成相应的Java源代码,然后插入进当前JSP页面所翻译成的Servlet源文件中,插入位置与include指令在当前JSP页面中的位置保持一致。
引入文件与被引入文件是在被JSP引擎翻译成Servlet的过程中进行合并,而不是先合并源文件后再对合并的结果进行翻译。当前JSP页面的源文件与被引入文件的源文件可以采用不同的字符集编码,即使在一个页面中使用page指令的pageEncoding或contentType属性指定了其源文件的字符集编码,在另外一个页面中还需要用page指令的pageEncoding或contentType属性指定其源文件所使用的字符集 。
Tomcat在访问JSP页面时,可以检测它所引入的其他文件是否发生了修改,如果发生了修改,则重新编译当前JSP页面
file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。
学习总结:JSP和servlet是侧重不同方面的处理方式,JSP侧重页面处理,servlet侧重数据处理,适用于不同的需要,在很复杂的情况下,甚至两种方法都要使用。
- JSP(一) —— JSP指令
- 传智播客——JSP(一)
- JSP学习——JSP基础知识(一)
- JSP学习——JSP基础知识(一)
- jsp技术(一)—— jsp简介与原理
- Java基础——JSP(一)
- JSP(一)jsp元素
- 我与你一起学习JSP(三)——JSP的基础语法【一】
- jsp中MVC模式——网络交友(一)
- JSP详细篇——EL表达式(一)
- JSP内置对象(一)——request对象
- tomcat基础知识——jsp访问错误(一)
- jsp的学习—什么是JSP以及其应用(一)
- JavaEE学习之路—–JSP(一)
- JSP详细篇——Servlet(一)
- JSP教程(一)
- JSP研究(一)
- JSP教程(一)
- 永不停止的程序。。。
- (十八)师大放假了 - 6
- 《软件随想录》:Joel Spolsky对计算机学生的七大建议
- eVC编程遇到的各种问题之——进程的打开和关闭
- (十八)师大放假了 - 7
- 传智播客——JSP(一)
- Q_OBJECT宏的作用
- 终于把dp算法几个经典题目ac了
- 心态,你今天心态好吗?
- ASCII码表
- CentOS下硬盘的挂载
- 转: 史记.八零后传
- 第零步——建立wince开发环境
- java中char数据类型的使用