前言:如果说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页面的新建    

新建

有些编码方式不支持中文, 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后台里面写包名不一样。

JSP技术基础(动态网页基础)的更多相关文章

  1. JSP/Servlet开发——第一章 动态网页基础

    1.动态网页:在服务端运行的使用程序语言设计的交互网页 : ●动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站(股票网站),一般情况下动态网站通过数据库进行架构. ●动态 ...

  2. JavaEE-01 JSP动态网页基础

    学习要点 B/S架构的基本概念 Web项目的创建和运行 JSP页面元素 MyEclipse创建和运行Web项目 Web程序调试 Web简史 web前端技术演进三阶段 WEB 1.0:信息广播. WEB ...

  3. jsp第一章 动态网页开发基础

    动态网站可以实现交互功能,如用户注册.信息发布.产品展示.订单管理等等: 动态网页并不是独立存在于服务器的网页文件,而是浏览器发出请求时才反馈网页: 动态网页中包含有服务器端脚本,所以页面文件名常以a ...

  4. JSP第一章动态网页的基础

    什么是动态网站(dynamic website)? 动态网站: 误区:初学者一般认为动态网页,就是会动的网页,但实际上不是这样的. 动态网页是指在服务器端运行的,使用程序语言设计的交互式网页,它们会根 ...

  5. 《The Django Book》实战--第二章--动态网页基础

    这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考. 这是一个用python写的一个 ...

  6. 第三章 Django之动态网页基础(1)

    前一章中,我们解释了如何建立一个 Django 项目并启动 Django 开发服务器.当然,那个网站实际并没有干什么有用的事情,它所做的只是显示 It worked!消息.让我们来做些改变.本章将介绍 ...

  7. 动态网页基础——JSP

    WEB项目的目录结构 META-INT  WEB-INF 对外都是不可访问的,不可把index.jsp/index.html 放这 JSP JSP是为了简化Servlet的工作出现的替代品,Servl ...

  8. 使用JSP/Servalet技术开发新闻发布系统------动态网页开发基础

    什么是动态网页? 动态网页是指在服务器端运行的程序或者网页,它们会随不同客户.不同时间,返回不同的网页. 动态网页的特点? (1).交互性:即网页会根据用户的要求和选择而动态改变和响应.采用动态网页技 ...

  9. 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础

      一:为什么需要动态网页    由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页  ①:动态网页是指在服务器端运行的,使用程序语言设 ...

随机推荐

  1. 51nod1832 先序遍历与后序遍历

    对于给定的一个二叉树的先序遍历和后序遍历,输出有多少种满足条件的二叉树.两棵二叉树不同当且仅当对于某个x,x的左儿子编号不同或x的右儿子编号不同. Input 第一行一个正整数n(3<=n< ...

  2. javascript学习笔记 - 引用类型 RegExp

    四 RegExp 格式: var expression = / pattern / flags; 1.flags 为标志.分别为g.i.m. g:表示全局模式.即模式将匹配所有的字符串,而不是在发现第 ...

  3. 性能学习之--loaderunner压测

    打开一个脚本,tools-create Controllwer Scenario,开始场景的设计 一.场景设计--手工测试 1.初始化 2.start vu 一般选择simultaneously,用户 ...

  4. 【Luogu】P3787冰精冻西瓜(线段树)

    题目链接 我脑子怕不是有坑qwqqq 用前缀和思想,dis[i]表示i离根的距离,那么修改操作其实是对x的子树区间加y/dis[x],查询的时候*dis[to]即可. 对付/0错的思路是建森林,然而这 ...

  5. 【Luogu】P3809后缀排序(后缀数组模板)

    题目链接 今天终于学会了后缀数组模板qwq 不过只会模板emmmm 首先我们有一本蓝书emmmmmm 然后看到蓝书221页代码之后我就看不懂了 于是请出rqy rqy: 一开始那是个对单个字符排序的操 ...

  6. Centos7系统rc.local不起作用问题

    Centos7系统rc.local不起作用问题 来源 https://www.cnblogs.com/xjz00/p/7729405.html Centos7已经写了要chmod +x /etc/rc ...

  7. charles 抓包工具破解方法

    在线破解地址: https://www.zzzmode.com/mytools/charles/ 之后将下载的jar包替换  charles.app ->右键显示包内容 ->content ...

  8. 2018.7.31 Noip2018模拟测试赛(十六)

     日期: 七月最后一天  总分: 300分  难度: 提高 ~ 省选  得分: 30分(少的可怜) 我太弱了:(题目目录) T1:Mushroom追妹纸 T2:抵制克苏恩 T3:美味 失分分析:(QA ...

  9. The disk contains an unclean file system

    Ubuntu : Status 14: The disk contains an unclean file system By mkyong | July 23, 2014 | Viewed : 10 ...

  10. 容器中元素的去重——ans.erase(unique(ans.begin(),ans.end()),ans.end());

    啊,原来unique()函数,只是处理的连续的元素,比如 -1 -1 -1 1 2 -1 2 就处理成了 -1 1 2 -1 2 -1 -1并且返回5,之后eraser(5,7)剩下了 -1 1 2 ...