Java匹马行天下之JavaWeb核心技术——JSP

JSP动态网页技术一、JavaWeb简介一、什么是JavaWeb?JavaWeb是用Java技术来解决相关web互联网领域的技术总称。需要在特定的web服务器上运行,分为web服务器和web客户端两部分跨平台,能够在多个平台下部署和运行二、静态网页和动态网页静态网页:网页中的内容是固定的,不会更新。所用技术为html、css;动态网页:网页中的内容通过程序动态显示的,自动更新。所用技术为html、...

Java匹马行天下之JavaWeb核心技术——JSP

JSP动态网页技术

一、JavaWeb简介

一、什么是JavaWeb?

  • JavaWeb是用Java技术来解决相关web互联网领域的技术总称。
  • 需要在特定的web服务器上运行,分为web服务器和web客户端两部分
  • 跨平台,能够在多个平台下部署和运行

二、静态网页和动态网页

  • 静态网页:网页中的内容是固定的,不会更新。
  • 所用技术为html、css;
  • 动态网页:网页中的内容通过程序动态显示的,自动更新。
  • 所用技术为html、css、数据库、至少一门高级语言(Java、C#,PHP),JavaScript,XML等,主流的动态网页脚本技术(jsp/Asp.net/php)

三、Tomcat服务器目录介绍

WEB-INF是Java的Web应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。

web.xml文件是项目的部署文件

classes文件夹,用于放置*.class文件

lib文件夹,用于存放需要的jar包

如图:

四、修改Tomcat服务器默认端口

在Tomcat的安装目录下,找到conf-->server.xml文件

找到Connector标签

修改port属性的值即可,端口修改完成后要记得保存,并且重启Tomcat服务器。

二、JSP基础学习

一、JSP简介

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了再Java当中使用HTML标签。JSP是一种动态网页技术标准也是JavaEE的标准。JSP与Servlet一样,是在服务器端执行的。

JSP实际上就是Servlet。JSP这门技术的最大的特点在于:写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

二、JSP的作用

  • Servlet:服务器端的小应用程序。适合编写Java逻辑代码,如果编写网页内容------->费时费力,太苦

缺点:不适合设置HTML响应体,需要大量的

response.getWriter().print("<html>");

优点:动态资源,可以编程。

  • HTML:静态内容

缺点:HTML是静态页面,不能包含动态信息;

优点:不用为输出html标签而发愁。

  • jspjava server pages):适合编写输出动态内容,但不适合编写Java逻辑

优点:在原有HTML的基础上添加java脚本,构成jsp页面。

三、JSP和Servlet的分工

  • JSP

作为请求发起页面,例如显示表单、超链接。

作为请求结束页面,例如显示数据。

  • Servlet

作为请求中处理数据的环节

四、JSP的组成

jsp=html java脚本 jsp标签(指令)

jsp中无需创建即可使用的对象一共有9个,称为九大内置对象。

3种java脚本:

  • <%……%> java代码片段(常用),用于定义0-N条java语句,方法内写什么就可以在这里写什么,不能声明方法和类;
  • <%=……%> java表达式,用于输出(常用),用于输出一条表达式(或变量)的结束,print()括号中参数可以放什么,这里就能放什么;
  • <%!……%> 声明,用来创建类的成员变量和成员方法(基本不用),class A{ } 类体中可以放什么,这里就可以放什么。

五、JSP的执行流程及原理

jsp其实是一种特殊的Servlet

  • 当jsp页面第一次被访问时,服务器会把jsp编译成java文件(这个java其实是一个Servlet类);
  • 然后再把java编译成.class;
  • 然后创建该类对象;
  • 最后调用它的service()方法;
  • 第二次请求同一jsp时,直接调用service()方法。
  • 在Tomcat的work目录下可以找到jsp对应的.java源代码。

1、IE浏览器在访问JSP页面时,Web服务器是如何调用并执行一个jsp页面的?(Servlet)

  • 第一次:转译(翻译) --> 编译 --> 执行
  • 第二次:执行

2、Web服务器在执行jsp页面时,是如何把Jsp页面中的html排版标签发送到客户端的?

  • out.print("<......>"); 或者 out.write("<......>");

3、Jsp页面中的java代码服务器是如何执行的?

  • 服务器 --> .java文件 --> .class文件 --> 结果out回客户端

4、Web服务器在调用jsp时,会给jsp提供一些什么java对象(内置对象)?

  • HttpSession、ServletConfig、ServletContent、request、response、out等等。

六、JSP的基本语法

  • Servlet:控制器。重点编写java代码逻辑。(获取表单数据、处理业务逻辑、分发转向)
  • JSP:代码显示模板。重点在于显示数据。(为什么显示数据不直接用.html文件呢?因为.jsp文件中可以插入java代码显示回显消息,简言之,jsp功能更强大)

 1、JSP的模版元素:简言之就是网页的静态内容

    例如:html标签和普通文本。

 2、JSP的脚本     

  • <%……%> java代码片段(常用),用于定义0-N条java语句,方法内写什么就可以在这里写什么,不能声明方法和类;
  • <%=……%> java表达式,用于输出(常用),用于输出一条表达式(或变量)的结束,print()括号中参数可以放什么,这里就能放什么;

 <%=23%>等价于out.print(23);

  • <%!……%> 声明,用来创建类的成员变量和成员方法(基本不用),class A{ } 类体中可以放什么,这里就可以放什么。

3、注释

    JSP注释:<%--被注释的内容--%>特点:安全,省流量

    网页注释:<!--网页注释--> 特点:不安全,费流量

七、JSP的三个指令

 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分

 在JSP2.0规范中共定义了三个指令:

  • page指令(页面级别)
  • include指令(导入其它页面的信息)
  • taglib指令(标签指令)

例如:

 1page

    作用:page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面。

       为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。

    属性

  •      importjava代码中的import是一样的。

        <%@pageimport="java.util.Date,java.util.List" %>

        或者:

        <%@pageimport="java.util.Date"%>

        <%@pageimport="java.util.List"%>

        JSP会自动导入(默认导入)以下的包:

          importjava.lang.*;

          importjavax.servlet.*;

          importjavax.servlet.http.*;

          importjavax.servlet.jsp.*;

  •      session: 表示是否会自动创建session对象。其默认值是true
  •       buffer:JSP中有javax.servlet.jsp.JspWriter输出字符流。设置输出数据的缓存大小,默认大小是8kb。建议最好不要改大小。
  •      errorPage:如果页面中有错误,则跳转到指定的资源。(即不让页面弹出404/500等错误)

        errorPage="/uri"

        如果写"/"则代表当前应用的目录下,绝对路径。

        如果不写"/"则代表相对路径。

  •      isErrorPage: 表示是否创建throwable对象。其默认值是false。作用:输出页面错误信息:by zero
  •      contextType:contentType="text/html; charset=UTF-8" 告诉浏览器使用什么编码来解析文本。等同于response.setContextType("text/html;charset=utf-8");
  •      pageEncoding:告诉JSP引擎(服务器)要转译(翻译)的文件使用的
源文地址:https://www.guoxiongfei.cn/cntech/18351.html