JSP学习---jsp简介和理解jsp的本质
本篇博课知识点:
1.jsp技术简介
2.Tomcat首次访问JSP的过程:
3.JSP语法:
4.代码演示
jsp技术简介
- JSP是Java Server Page的缩写,它是Servlet的扩展,它的作用是简化网站的创建和维护。
- JSP是HTML代码与Java代码的混合体。
- JSP形式上像HTML,但本质上是Servlet。
Jsp页面的代码全部是由java语言代码和HTML语言代码组成,那么为什么说JSP本质是Servlet?— 查看源码
先把含有jsp页面的项目发布,启动服务器,然后去Tomcat里面找生成的jsp文件的源码
我的路径
E:\Tomcat\apache-tomcat-7.0.30-windows-x86\apache-tomcat-7.0.30\work\Catalina\localhost\jspDemo\org\apache\jsp\jsps
生成的.java文件继承一个类
这个类。
org.apache.jasper.runtime.HttpJspBase
然后我再Tomcat的lib目录下面找到了这个包
再利用反编译软件打开,查看源代码
发现两点;
1:继承了HttpServlet
2.写了Servlet方法–调用了一个抽象方法
这个抽象方法就是 我们 Tomcat服务器把我们写的JSP文件编译成Java文件的主要方法;
并且把我们JSP页面所有的东西都包装在这个方法里面了。
用一句话说: 我们写的所有JSP代码 都是写在一个Servlet的service方法里面. 所以转一圈—-我们的JSP就是一个Servlet。
那么为什么要这么做? 肯定是优化了—简化网站的创建和维护。
,
怎么优化的? 在于他的九大内置对象。 并且我们仔细看会发现这九大内置对象,都是我们servlet里面用的比较多
除了 PageContext、pag和exception三个外,剩下的我们都用的很熟了
ServletContext application、HttpSession session、 ServletConfig config、request、response、 out.这就是JSP的本质—servlet
Tomcat(服务器)首次访问JSP的过程:
(其中一个细节是: 当网站主页打开、有用户访问JSP文件时,服务器才会把他编程.java文件)
下面两句代码区别
contentType="text/html; charset=utf-8"
pageEncoding="UTF-8"
第一句是 告诉浏览器用什么样的编码打开,服务器发过去的文件。
第二句是 告诉服务器,把这个JSP页面编译成 servlet.java文件时候用什么编码
JSP语法:
- JSP指令。:<%@ 指令名 属性=“值”%>
- JSP声明。成员变量,或是成员方法.: <%! …. %>
- Java程序片段。不论有多少这样的代码块,都将包含_jspSerivice方法中。:<% … %>
- Java表达式。-快速输出信息. <%= …%>
演示代码
<%@ page language="java" import="java.util.*,javax.swing.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<!-- JSP中写Java脚本的方式1: 指令 --><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>JSP技术演示页面</title></head><body>This is my JSP page. <br><a href="<%=path%>/jsps/demo2.jsp">aa</a><!-- JSP中写Java脚本的方式2: 普通的Java代码段。翻译后变成jspService()内部的局部代码段 --><%String s="dsjkdsjk";%><form action="demo1.jsp" method="post">Name:<input type="text" name="name"/> <br/>Pwd:<input type="password" name="pwd"/> <br/><input type="submit"/></form><%//response,out, application,session,request,pageContext, page, config, exceptionout.println(s);%><div>湖南城市学院OKOK<font color=red size=20pt >暑假</font>很热</div><% //Tomcat翻译成jspServlet,把下面的代码嵌入到jspService()方法中request.setCharacterEncoding("utf-8");String name = request.getParameter("name");String pwd = request.getParameter("pwd");if(name!=null && name.equals(pwd)){out.println("欢迎你,"+name);Date d = new Date();out.println( d.toString() );}%><!-- JSP中写Java脚本的方式3(比普通多了个叹号): 翻译后变成jspServlet类的成员变量或成员方法 --><%! //声明成jspServlet类中的成员变量int ss=10;public String aa(){return "ss="+ss;}%><%out.println( aa() );%> <br/>输出类的成员变量ss的值:<!-- JSP中写Java脚本的方式4: 一种在页面当前位置输出变量内容的写法 --><%=ss %><%--这是JSP的注释--%><%@include file="demo2.jsp" %></body>
</html>
效果
JSP学习---jsp简介和理解jsp的本质相关推荐
- Servlet与JSP学习笔记(五) JSP核心(下)
同样可以参考菜鸟笔记. JSP标签 JSP除了包括以"<%"开头的JSP标记,还包括以"<jsp:"开头的JSP标签.实际上,前者的每种标记都有后者 ...
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效 request:在一次服务请求范围内,服务器跳转后依然有效 session:-在一次会话范围内 ...
- JSP学习笔记01 - JSP简介及运行环境配置
一.什么是JSP 1.jsp简介 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导.许多 ...
- 【学习笔记】JSP学习笔记(上)
我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...
- javaee学习之路(十五)JSP编程总结
1.1 Tip:如何查找JSP页面中的错误 JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息. ...
- Java学习(三)JSP学习1
一. 理解JSP技术 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与 ...
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...
- java jsp学习指南_JSP教程–最终指南
java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...
- Head first servlet and jsp学习笔记
学习中遇到的问题:java基础不行,都忘光了. 主要是:继承,接口,多线程,IO.尤其是多线程,在分布式系统中应该使用的比较多 第一章:前言和体系结构 HTTP协议: TCP/IP的上层协议(应用层) ...
最新文章
- android开发教程
- 计算机二级考试选择科目有级别,计算机二级考试该选哪一科目?
- 一条SQL语句实现二进制到十进制的转换
- Scala 求三个数中的最大数代码示例
- 驱动程序实例(四):按键驱动程序(platform + input子系统 + 外部中断方式)
- javascript基础修炼(4)——UMD规范的代码推演
- python矩阵变化_用numpy改变矩阵的形状
- 美国科学院院士、斯坦福大学王永雄(Wing H Wong)教授 - 生物信息学云论坛第一讲!...
- 我向面试官讲解了单例模式,他对我竖起了大拇指
- Linux(debian)操作基础(二)之ASPM(活动状态电源管理)
- 链表——单链表、单向循环链表、双向链表
- 多因子策略介绍与应用
- a byte of python2微盘_《A Byte of Python》与《简明 Python 教程》PDF版
- Android开发入门基础
- 数学建模:评价性模型学习——层次分析法(AHP模型)
- python下载电影_使用python下载VIP电影
- a3967驱动_Arduino A3967 步进电机驱动板 EasyDriver Stepper Motor
- plotting matlab,MATLAB - Plotting
- 为什么阿里巴巴规定禁止超过三张表 join
- Linux学习之错误与解决记录(持续更新)