前言
- Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件。
- 整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会在案例中根据不同的需求引入。
- 首先了解javaWeb的整个技术体系,掌握常用的技术知识点。
8、JSP
8.1、什么是JSP
JavaServletPages: Java服务器端页面,也和Serlvet一样,用于动态web技术
最大的特点:
- 写JSP就像写HTML
- 区别:
- HTML只给用户提供静态的数据
- JSP页面中可以嵌入Java代码,为用户提供动态数据
8.2、JSP原理
思路:JSP到底是怎么执行的
-
代码层面没有任何问题
-
服务器内部工作
Tomcat中有一个work目录:
idea中使用Tomcat会在idea的Tomcat中产生一个work目录
-
发现页面变成了Java程序
JSP最终也会被转成一个java类
JSP本质上就是一个Servlet
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问servlet
1.判断请求
2.内置一些对象
final javax.servlet.jsp.Pagecontext pagecontext;
//页面上下文
javax.servlet.http.Httpsession session null;
//session
final javax.servlet.Servletcontext application;
//applicationContext
final javax.servlet.servletconfig config;
//config
javax.servlet.jsp.Jspwriter out null;
//out
final java.lang.object page this;
//page:当前
HttpservletRequest request
//请求
HttpservletResponse response
//响应
3.输出页面前增加的代码
response.setcontentType("text/htm1");
//设望响应的页面类型
pagecontext = _jspxFactory.getPagecontext(this,request,response,
null,true,8192,true);
_jspx_page_context = pagecontext;
application = pagecontext.getservletcontext();
config = pagecontext.getservletconfig();
session = pagecontext,getsession();
out = pagecontext.getout();
_jspx_out=out;
以上的这些对象我们可以在JSP页面上直接使用
在JSP页面中,只要是Java代码就会原封不动的输出
如果是HTML代码就会被转换为:
out.write("<html>\n");
这样的格式输出到前端
8.3、JSP基础语法
任何语言都有自己的语法,Java中有;JSP作为Java技术的一种应用,他拥有一些自己的扩充语法,Java所有的语法都支持
JSP表达式
<%--JSP表达式
作用:用来将程序的输出,输出到客户端
<%= new 变量或者表达式%>
--%>
<%= new java.util.Date()%>
JSP脚本片段
<%--jsp 脚本片段 --%>
<%
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum+=i;
}
out.println("<h1>Sum="+sum+"</h1>");
%>
脚本片段的再实现