JavaWeb之 JSP基础
什么是JSP
JSP的全称是java server page, java服务页面。是提供java服务的页面~
那么和Servlet有什么区别呢?JSP的页面既可以写java代码~也可以写html代码哦!!
JSP的特点
JSP的作用:JSP是主要用来开发动态资源的技术~
那么JSP怎么运行呢?我这里交给Tomcat服务器运行了~
Jsp运行的目录
%tomcat%/work是tomcat服务器运行jsp页面的临时目录。
那么我们来看看JSP的原理,JSP是怎么运行的~
我们用浏览器输入: http://localhost:8080/day12/01.hello.jsp
第一次访问时: 找到文件-翻译-编译-构造实例-调用方法
1)在day12web应用下找到01.hello.jsp文件
2)tomcat服务器将01.hello.jsp文件翻译成java源文件。例如 01.hello_jsp.java
3)tomcat服务器将java源码编译成class字节码, 例如 01.hello_jsp.class
4)tomcat服务器构造01.hello_jsp类的实例,调用类中的方法。
第n次访问时: 已经存在了jsp文件对应的class对象的一个实例,直接用该实例调用方法
tomcat服务器不再翻译和编译jsp文件
注意: jsp文件被修改,或jsp临时文件被删除,服务器都会重新翻译和编译jsp文件。
1)当修改了jsp文件时的第一次访问,重新再翻译和编译jsp文件。
2)当删除%tomcat%/work的jsp临时文件的第一次访问,重新再翻译和编译jsp文件。
Jsp的原理
问题: Jsp文件翻译成的java源文件是什么类??
public final class hello extends HttpJspBase
public abstract class org.apache.jasper.runtime.HttpJspBase extends HttpServlet implements HttpJspPage {
继承自HttpServlet!!!
结论: Jsp就是一个servlet!!
注意
1) Jsp文件的html代码,通过out.writer()方法写出到浏览器。
2) Jsp文件的java代码,直接拷贝到java源文件中,通过_jspService()方法执行。
那么我们下面来体验一下JSP吧~
jsp的体验
需求: 用jsp向浏览器输出当前时间。下面是核心代码:
<body>
<h1><font color='red'>欢迎来到此页面</font></h1>
<%
SimpleDateFormat simaple = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = simaple.format(new Date());
request.setAttribute("aa", "123");
%>
当前的时间是:<%=date %>
<%
String ip = request.getRemoteAddr();
out.write(ip);
%>
</body>
然后用浏览器直接访问这个jsp,就能看到以下的效果了~
体验完JSP,是不是很自己写一个体验一下呢?下面我们就来学习JSP的语法吧!
JSP的语法
Jsp模板
Jsp模块:就是jsp页面中的html代码
Jsp表达式
例如:<%=x%> 表达式<%=x*y+k-n%>
这样写的表达式,翻译后实质上是用过out.print()来输出。
格式: <%=变量或表达式计算%>
作用: 用于向浏览器输出变量的值或表达式计算的结果
注意:
1)表达式的原理就是通过out.print()方法向浏览器输出内容。
2)表达式后面不能带分号。
Jsp脚本
也就是html中的java代码
格式:<% java代码 %>
作用: 执行java代码
注意:
1)可以写多行java代码
2)原理是把脚本代码原封不动拷贝到_jspService方法中执行。
3)jsp脚本可以穿插html代码结合使用
Jsp声明
声明里面的 变量和方法 是 成员变量 和成员方法
格式: <%! %>
作用: 声明jsp的变量和方法
注意:
1)Jsp脚本声明的变量是局部变量,Jsp声明的变量是成员变量。
2)Jsp脚本中不能声明方法的,Jsp声明的方法是成员方法。
3)jsp声明的方法不能和翻译成的java类的方法重复。
Jsp注释
jsp注释只会出现在jsp文件中,不会被翻译到java文件里。
格式: <%-- jsp注释 --%>
注意:
html的注释会翻译到java源代码中,会被执行的。
jsp的注释不会翻译到java源代码中,不会被执行的。
看完前面的介绍那么久写一段代码来体现下吧~
<body>
<%--模板 --%>
<h1><font color='red'>欢迎来到此页面</font></h1> <%--脚本 --%>>
<%
SimpleDateFormat simaple = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = simaple.format(new Date());
request.setAttribute("aa", "123");
%> <%--表达式 --%>>
当前的时间是:<%=date %>
<%
String ip = request.getRemoteAddr();
out.write(ip);
out.write(s);
%> <%--声明--%>
<%!
String s = "hello";
%> </body>
然后看看输出的结果把~:
上述就是JSP的基本语法,除了基本语法,我们还需要学习JSP的三大指令。
Jsp三大指令
一)taglib指令(这个我们以后再说)
主要用于导入jsp标签库
二)include指令
include指令 ----》把其它页面一并翻译到java文件里,这个页面不需要具备html,body,head标签,因为它会被翻译到jsp文件对应的html的body内
作用: 主要用于包含其他页面
格式:<%@inculde file="被包含的页面"%>
注意:
1)include指令原理: 包含与被包含的页面内容先合并翻译到一个java文件中,再编译运行。(先合并再翻译),这种包含叫静态包含。(源码包含)
2)如果使用include指令包含,那么被包含的页面不需要使用全局的html标签(例如,html,body,head)
page指令
作用: 主要用于告诉服务器如何翻译jsp文件,主要有下面几种设置:
<%@ page language="java" --告诉服务器用什么语言翻译此jsp页面 import="java.util.*" --导包,在jsp页面编写java需要手动导包。除了java.lang包以为都需要导入。多个包之间用逗号分隔
buffer="8kb" --jsp页面缓冲区大小
session="true" -- 是否开启session功能
isELIgnored="false" --是否忽略EL表达式
关于jsp文件的编码: pageEncoding="utf-8" --告诉服务器用什么编码翻译此jsp文件 contentType="text/html; charset=utf-8" --服务器发送给浏览器数据的编码 注意: 1)contentType属性的编码看pageEncoding编码 2)在开发工具中,保存jsp文件的编码自动根据pageEncoding的编码改变。 结论: 1)在开发工具中,jsp文件的编码问题只需要设置pageEncoding即可! 2)如果用记事本开发jsp文件,要注意保存jsp文件的编码。 异常相关的: errorPage="" -指定错误处理页面,当页面出现错就会转跳到错误页面。 isErrorPage="" --指定当前页面是否是错误处理页面。 true:是,那么可以使用exception的内置对象,使用它的一些方法。 false:不是。不可以使用exception对象。 全局异常处理:在web.xml中加上配置
<!-- 配置全局异常 -->
<error-page>
<error-code>500</error-code>
<location>/common/500.jsp</location> 505错误都会转跳到这个页面
</error-page>
<error-page>
<error-code>404</error-code>
<location>/common/404.html</location> 404错误都会转跳到这个页面 </error-page>
JavaWeb之 JSP基础的更多相关文章
- JavaWeb chapter9 JSP基础
1. Servlet的缺陷 一个动态网页中,大部分内容都是HTML代码等固定不变的内容,编写和修改HTML非常不方便,令人厌恶: 部署Servlet是繁琐而且容易出错的任务:(Servlet3.0规 ...
- JAVAWeb入门之JSP基础知识
也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a) HTML/CSS/JS(前端页面),XML,JSON,vue ...
- JavaWeb基础-Jsp基础语法
jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...
- Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 ...
- JavaEE系列之(一)JSP基础知识详解
一.JSP基础语法 1.JSP简介 JSP(Java Server Pages),其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.JSP是一种动态网页 ...
- JSP基础笔记
主要内容:1. JSP基础2. Cookie3. HttpSession ================================ JSP基础 1. jsp的作用: * Servlet: &g ...
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- Java匹马行天下之JavaWeb核心技术——JSP
JSP动态网页技术 一.JavaWeb简介 一.什么是JavaWeb? JavaWeb是用Java技术来解决相关web互联网领域的技术总称. 需要在特定的web服务器上运行,分为web服务器和web客 ...
- Servlet&jsp基础:第五部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- android 隐藏系统键盘
-----------------------------------------已验证----------------------------------- public static void c ...
- Redis主从是否生效的特殊测试方法
Redis主从的特殊测试方法 配置主从 Redis的主从设定,相较于MySQL的主从,配置起来非常简单,不必像MySQL数据库一样手动记录bin log的位置再配置,但又可以像MySQL一样,一主带多 ...
- QTP 场景恢复– 函数调用
创建自动化测试是为了实现无人值守下运行,但也给开发人员带来一些问题.假如你离开办公室前启动测试,想要让它通宵运行.然而,由于不可预见的错误,您的测试会在某一点停止,中断了测试结果.因此QTP中引入场景 ...
- Nodejs文件服务器
最近一直在忙于一个比较大的项目,在项目中需要有个文件服务器来支持.老鸟们建议我去用NodeJs来实现,我在接手这个项目之前其实并不了解NodeJs,但是一直想去了解.借着这个机会好好去学习一下.下面是 ...
- 学习总结 for循环语句的应用
for(初始值:条件表达式:状态改变) { } \n 表示换行 \ttab键 \\写出一个斜杠 例题解释 // 输出一个数,打印一到n出来 int n = int.Parse(Console. ...
- centos6.5没有eth0, 只有eth1, eth1无法上网
1. cat /etc/udev/rules.d/70-persistent-net/rules 2.将ATTR(address)=XXXXXXXX的内容 替换 文件/etc/sysconfig/ ...
- 洛谷P1214 [USACO1.4]等差数列 Arithmetic Progressions
P1214 [USACO1.4]等差数列 Arithmetic Progressions• o 156通过o 463提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题 ...
- 洛谷P1984 SDOI2008烧水问题
P1984 [SDOI2008]烧水问题 186通过 438提交 题目提供者lych 标签数论(数学相关)模拟各省省选 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 求助! 也是醉了... ...
- Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates
最近离职了,刚好在离职之际有人叫我帮做个项目,简直了,没有mac电脑,没有真ji设备,简直了.接项目那哥们,暂且叫做J,大哥说我给你想办法,then,给借了个mac pro.刚拿到电脑真是喜出望外啊, ...
- 图形化Cisco设备管理实践(附安装配置视频)
图形化Cisco设备管理实践 Ciscoworks 2000是Cisco公司推出的基于SNMP协议的网络管理系统,通过它网络管理人员可以方便快捷地完成设备的配置.管理.监控和故障分析等任务, Cisc ...