JSP技术基础(动态网页基础)

时间:2023-03-08 16:51:34
JSP技术基础(动态网页基础)

前言:如果说html为静态网页基础,那么jsp就是动态网页基础,两者的区别就是jsp在html的前面多加了几行而已。当然,jsp里面对java的支持度更高。要明白,js只是嵌入在客户端的小程序小脚本而已。Jsp里面也有一些脚本语言,这个主要是和后台有联系的,或者各个网页之间有联系的。所以,千万不要弄混。

1、jsp的执行过程

JSP不能直接运行,需要翻译。

Jsp执行过程

  1. 翻译阶段

    Jsp被web容器中的jsp引擎转换为java源码 .java

  2. 编译阶段

    源码被翻译为.class文件,字节码文件。

  3. 执行阶段

    部署服务器的过程其实就是编译的过程,web获取客户端的请求后,web开始执行字节码文件。

如果内容被更改,需要重新部署

系统里面有原来的.class文件,就会执行原来的文件,不会执行这个。

2、jsp的页面组成

  1. 静态内容:html静态文本 保留html部分
  2. 指令 : <%@ 开始 %> 结束 一般可以引入一些java类的包
  3. 表达式 :<%=java表达式%> 一般是java赋值代码
  4. 小脚本 :<%java代码 %> 一般的java代码
  5. 声明 :<%!方法%> 一次声明,多次使用,实现代码共享 语言重用
  6. 标准动作:<jsp:动作名>开始 </jsp:动作名>
  7. 注释 :<!-- --> 客户端可以查看到 <%-- --%> 客户端看不到 供程序员看到 通过 在浏览器中 按 F12查看源码。

3、几个问题汇总

问题:1、jsp(java server page的简称) 与 java 区别?

Jsp是一种网页语言。Jsp = java + JavaScript + html;java 是一个平台,分为三个版本:javaSE,javaEE,javaME。 jsp属于javaEE里面的一种技术,属于动态网页制作。

2、jsp与html?

Jsp是动态网页制作,jsp是在html静态网页的基础上添加jsp脚本使得html静态网页变成动态网页。

3、昨天编的代码不是jsp?

不是,只是简单的JavaScript。脚本语言JavaScript,其可以嵌入到jsp,asp,php等动态网页中去。

4、jsp与js?

不是同一种技术。

5、关于昨天的 ; 问题。 可有可无

6、可否在jsp页面include html页面?

Jsp中嵌入html这个简单,完全兼容其代码。Html转换为jsp只需将html代码全部拷贝到jsp下面,保留下面几句代码即可。这样的话,我们就可以在jsp页面中调用即可。    

<%@
page
language="java"
import="java.util.*"
pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

我们不能在html页面中嵌入jsp页面,因为jsp页面需要java web服务器解析,比如 tomcat等著名的web服务器。

参考资料:http://zhidao.baidu.com/link?url=7rzDWnIt4c5a3ZIYCKp2CLrx2onPykEXaP4eAylNGrvXuruIwgTuGTthgeqTWHzfNpjhN-zbXdyI3jCrXMX5Fq

JSP全称是:java server page,意思是基于JAVA服务器的网页技术,跟asp,php一样,都是网页制作用的语言
JavaScript:也成为JS,跟JAVA没啥关系,就是赶时髦起个这名字,是一种脚本语言,嵌套在网页中实现各种功能的,比如禁止右键菜单,禁止复制什么的
JSP,ASP,PHP都能嵌套使用JavaScript。

JAVASCRIPT从其名称含义是JAVA脚本,是在浏览器中运行的脚本语言,由于其大部分语法规范取自于JAVA语法规范,所以取名为JAVASCRIPT。JSP是JAVA SERVER PAGE的首字母缩写,顾名思义,是JAVA的服务端页面,其动态语法部分完全是JAVA规范。JAVA的概念这里就不描述了。总结:JSP是JAVA技术的其中之一,所以学好了JAVA过渡到JSP从编程角度来讲比较容易,学好JSP以后要想学好JAVA,就还要学习更多的JAVA方面的东西,比如JAVABEAN,企业级应用等等。JAVASCRIPT严格来讲,除了语法参照了JAVA语法规范外,和JAVA毫无关系,所以两者之间只是语法规范类似,相互之间的过渡就只有语法能够参照,其他的都得分别去了解,JAVASCRIPT是过程式语言,JAVA则是面向对象的

4、jsp页面的新建    

新建

JSP技术基础(动态网页基础)

有些编码方式不支持中文, gb2312 utf-8 支持中文

<%@ include file= %>

在哪里插入 jsp页面,他就在哪里出来

5、小问题汇总

表达式 是用来显示 内容的。

路径问题需要引起注意: ./ 当前目录。 ../ 上一级目录 ,搞清楚相对路径与绝对路径    

6、数据传递

页面间如何传递数据:

  1. jsp内置对象

    不需要new直接用,因为内置对象使用频繁。相当于public声明的全局函数。

    Out session request application response

    相当于 Math.xxxx(); 静态方法,已经实现。

    一问一答 请求—响应 request --- response。

    一个session 由多个请求响应构成的。 简称一次会话。

    一次购物的过程 就是 一次会话, 其实这里面有多个 请求响应构成。

  2. jsp里面的作用域

    可以类比C++或C里面的变量的作用域。

    Page:当前页面有效

    Request:一次请求范围内有效。

    客户端跳转:客户单击超链接跳转到另一个页面;通过浏览器地址到另一个页面。Request失效。

    服务器端跳转:request依然有效。

    Session:客户浏览器与服务器一次会话范围内。服务器断开连接即失效。Timeout 也是失效的一种。把浏览器关掉也是失效。通过它,可以搞 用户界面访问控制。

    Application:整个服务器范围内,服务器停止以后才会失效。网站访问量 :xxxxxxxx。这个值就是放在application里面的,当然可以放在数据库里面,当你系统崩溃了,application里面的值就没了。

  3. request对象主要用于客户端请求

    上次搞的 return false; 与 返回 null ,空; 是有区别的。

    设置字符编码;setCharacterEncoding(); //乱码问题

    转发请求,getRequsetDispatcher(); //服务器端的跳转 超链接是客户端的跳转。

4、举例

鼠标点击在超链接上,会有标签出现。这种方式的数据传递是采用get方式,数据不太安全。没有post安全。

当超链接里面有多个参数的时候,我们一般用 & 连接符来增加。

5、表单编程模式

封装到Request对象里面去。 我们叫做form编程。针对一个form里面的对象进行编程。

JSP技术基础(动态网页基础)

当我们value为汉字的时候,另一个页面可能会出现乱码,所以,我们写英文就可以解决这个问题。

表单处理编程模式是最常用的方式。

下面是利用表单处理模式来解决用户登录问题的步骤:

  1. 用户输入数据并提交
  2. Jsp进行处理
  3. 返回不同结果

错误1:跳不成功

JSP技术基础(动态网页基础)

在上面的代码中,代码有问题。因为在jsp 里面,用 == 不行,必须用方法实现。Equal (); 比较内容,而不是引用。

其中 get 是直接带参数的。一般用于:form表单(感觉不太对) 和 超链接。

Post是超链接不带参数的,比较安全。

http是应用层协议,其底层是tcp实现的。而http的内置对象是基于http的,所以页面之间通过http内置对象传递数据是通过tcp协议来实现的。

Post 模式:

JSP技术基础(动态网页基础)

这个里面包名,必须定位到底层,这个和在src后台里面写包名不一样。