JSP学习---jsp简介和理解jsp的本质
来源:互联网 发布:红帽linux 10天就重启 编辑:程序博客网 时间:2024/06/05 08:47
本篇博课知识点:
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, exception out.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的本质
- JSP的本质
- JSP乱码的本质
- JSP本质
- JSP本质
- cookie和jsp的简介
- servlet和JSP的理解
- jsp简介及学习
- JSP学习之简介
- JSP学习笔记(1)-JSP简介
- 【jsp】jsp简介
- [JSP]JSP 简介
- JSP的入门简介
- JSP中脚本、声明和表达式的本质区别
- JSP中脚本、声明和表达式的本质区别
- JSP中脚本、声明和表达式的本质区别
- JSP简介
- JSP简介
- HDU 6030 DP + 矩阵快速幂
- ACE_Singleton类学习
- 欢迎使用CSDN-markdown编辑器
- Activity生命周期
- 5个学习Linux命令站点推荐
- JSP学习---jsp简介和理解jsp的本质
- MYSQL#将多条无关的数据库记录合并成一条记录,并取值
- getRequestURI,getRequestURL的区别(转)
- Opentsdb 2.3 Writing data(一)
- Mybatis使用generator自动生成映射配置文件信息
- Prime 素数判断
- 0-1背包问题
- 为什么在python里推荐使用多进程而不是多线程
- MySQL双主一致性架构优化(58沈剑)