(1)jsp执行过程、语法
来源:互联网 发布:郑州软件开发工资 编辑:程序博客网 时间:2024/06/07 21:01
1.为什么会出现jsp技术?
Servlet做界面不方便,于是有了新的技术–》jsp
1.jsp运行在服务器端
2.Jsp(java servlet page)
3.jsp的基础是servlet,相当于对servlet进行包装
4.Jsp是综合技术:Jsp=html+java片段+jsp标签+Javascript(css)
5.Jsp无需配置,直接使用。如果修改可jsp文件,无需重新reload应用。
6.Jsp如何使用:http://ip:8080/web应用名/jsp路径
jsp的路径从WEBRoot开始算,若jsp没有子文件夹,则
http://localhost:8080/jsp1/showTime2.jsp
7.jsp是动态网页技术,可以与用户交流。
Jsp存放地址:E:\apache-tomcat-6.0.39\work\Catalina\localhost\项目名/一直点击即可
快速入门案例
2.web服务器调用并执行一个jsp原理图:
3.jsp网络拓扑图
4.jsp执行细节
①jsp页面中的HTML排版标签(注意是HTML标签)是如何发送到客户端的?
要结合showTime2_jsp 来看
out.write(" <table>\r\n"); out.write(" <tr> \r\n"); out.write(" <td>apple</td>\r\n"); out.write(" <td>melon</td>\r\n"); out.write(" <td>orange</td>\r\n"); out.write(" </tr>\r\n");
②jsp页面中的Java代码,服务器是如何执行的?
<% int i=0; int j=i+9; %> <% out.println("j="+j);//上个Java片段的内容也可以在此Java片段中应用,在showTime2_jsp.java中,均在_jspService函数中 %>//被翻译成jsp后:Java文件 int i=0; int j=i+9;
多个<% %>其实相当于一个大的<% %>.在<% %>中定义的变量,会成为servlet函数中的局部变量。
③提供了9个,我们使用了out对象—》PrintWriter out = response.getWriter();
五、jsp特点
jsp这门技术的最大特点在于,写jsp就像在写html,但:
它相比html而言,HTML只能为用户提供静态数据,而jsp技术允许在页面中嵌套Java代码,为用户提供动态数据。
它相比servlet而言,servlet很难对数据进行排版,而jsp除了可以利用Java代码生成动态数据的同时,也很容易对数据进行排版。
六、jsp语法
①指令元素:用于从jsp发送一个信息到容器,比如设置全局变量、文字编码、引入包
1)page指令:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
注意导入多个包,用逗号隔开。
解释buffer:out.println(“内容”);//即使是多个out.println,并不是一次就out一次就返回的,则是到一定的大小,才返回。
2)include指令:该指令用于引入一个文件(通常是jsp文件)。jsp引擎
<% @ include file=”文件路径名” %>
注意在%@中间不能有空格。
该指令用于引入一个文件(通常是jsp文件),jsp引擎会把两个jsp文件翻译成一个servlet文件,因此也叫静态引入。
被引入的jsp文件,只需保留page指令即可<html><body>
均可省略。
文件路径名是从WEBRoot开始的,若没有子文件,则写文件名即可。若有子文件,则写/子文件名/jsp名
contentType与pageEncoding区别
3)tag标签指令
<mytag:xx 属性/>
②脚本元素:可以理解就是Java片段scriptlet
1)scriptlet <% Java代码 %>
2)表达式 <%=Java表达式 %>
3)declaration 声明
<%! 变量声明 %> 比如<%! int count=10%> 声明全局变量,在<% %>内的是局部变量。若全局变量和局部变量同名,则以局部变量为主,因为它在Java片段中。<%! 函数声明 %> 相当于在类中定义一个函数
<!-- 声明变量 --> <%! int m=90; %> <% int n=90; out.println("m="+(++m)+"---"+"n="+(++n)); //第一次:m=91 n=91 //第二次:m=92 n=91 //第三次:m=93 n=91 %>
③动作元素:是使用xml语法写的,是jsp规定掉的一系列标准动作,在容器处理时,当容器遇到动作元素时,就会执行相应的操作
重点了解一:jsp:forward
<jsp:forward page="manage.jsp"></jsp:forward>
在软件开发中,不允许将转发写在WEBRoot中。通常把jsp放在WEB-INF目录下,目的是防止用户直接访问这些jsp文件。
解决方法:在WEBRoot下有一个入口页面,它的主要作用是转发<jsp:forward page="/WEB-INF/manage.jsp"></jsp:forward>
重点理解二:jsp:include
<jsp:include file=""></jsp:include>动态引入
动态引入和静态引入的区别:
相同点:把一个文件引入到另外一个文件
区别:静态引入会把两个jsp翻译成一个servlet,所以被引入的文件不要包含body、html
动态引入把两个jsp分别翻译,所以被引入的jsp可以包含html、body
④jsp文件的注释
<!--注释内容--> html注释方式,可以使用在jsp中.<%--注释内容--> jsp专用注释方法
区别:<!-- -->
会在servlet中对应生成out.write("<!-- -》")
,这样在返回给浏览器的静态页面也有<!--只是用户看不到。
<%-- --%>则在servlet中没有任何输出,建议使用<%-- --%>
五、jsp九大内置对象
pageContext解释
<% pageContext.setAttribute("name", "哈哈");//此属性只能在此页面使用 %> <% String name=(String)pageContext.getAttribute("name"); out.println("name="+name); %>
练习:jsp版本的计算器
知识点:
1.如何接收jsp页面提交的数据,并处理
2.jsp中如何使用Java片段
3.jsp中如何使用Javascript完成对数据合法性的校验。
不管是jsp,还是servlet,虽然都可以用于开发动态web资源。但是由于这两门技术各自的特点,在长期的软件开发实践中,人们逐渐把servlet作为控制器组件来使用,而把jsp当成显示端来使用。
因此,在软件开发中,根据这两门技术的特点,让他们各自负责各的,servlet只负责相应请求产生数据,并把数据通过转发技术带给jsp,数据显示用jsp来做。
- (1)jsp执行过程、语法
- jsp---->jsp执行过程
- JSP 语法(1)
- JSP语法(1)
- JSP的执行过程
- jsp执行过程
- JSP的执行过程
- JSP的执行过程
- JSP的执行过程
- JSP执行过程
- JSP的执行过程
- jsp的执行过程
- JSP的执行过程
- 图解JSP执行过程
- JSP的执行过程
- JSP执行过程
- jsp编译、执行过程
- JSP的执行过程
- 时隔好久,终于又要开始了,因为内容比较繁杂,不得不开始写下去。
- [BZOJ]3940: [Usaco2015 Feb]Censoring AC自动机
- 牛顿法计算平方根-Python
- Python Learning
- 欢迎使用CSDN-markdown编辑器
- (1)jsp执行过程、语法
- flask 笔记
- 分词算法模型学习笔记(二)——MEMM
- js中null 和undefined 和空串的区别
- 最小生成树模板
- lnmp架构(linux nginx mysql php)搭建
- IO的最基本操作:字符流文件的读写
- HDU 4009 Transfer water(最小树形图)
- Golang语言快速上手到综合实战(Go语言、Beego框架、高并发聊天室、豆瓣电影爬虫) 下载