zoukankan      html  css  js  c++  java
  • 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语法规范,所以取名为JAVASCRIPTJSPJAVA SERVER PAGE的首字母缩写,顾名思义,是JAVA的服务端页面,其动态语法部分完全是JAVA规范。JAVA的概念这里就不描述了。总结:JSPJAVA技术的其中之一,所以学好了JAVA过渡到JSP从编程角度来讲比较容易,学好JSP以后要想学好JAVA,就还要学习更多的JAVA方面的东西,比如JAVABEAN,企业级应用等等。JAVASCRIPT严格来讲,除了语法参照了JAVA语法规范外,和JAVA毫无关系,所以两者之间只是语法规范类似,相互之间的过渡就只有语法能够参照,其他的都得分别去了解,JAVASCRIPT是过程式语言,JAVA则是面向对象的

    4、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里面的对象进行编程。

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

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

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

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

    错误1:跳不成功

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

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

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

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

    Post 模式:

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

  • 相关阅读:
    mysql导sql脚本
    oracle导sql脚本
    基于jdk proxy的动态代理模式
    vue组件之组件的生命周期
    vue组件之组件间的通信
    python-爬虫scrapy框架安装及基本使用
    mongdb的使用
    python-爬虫 多线程爬虫
    python-爬虫 爬虫利器BeautifulSoup
    python-爬虫lxml库
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/4225401.html
Copyright © 2011-2022 走看看