servlet是java服务器端编程,是运行在服务器上的。不同于以前的java小程序。

                                                                      

图一                                                                                                                            图二

图一可以看出:服务器与servlet打交道,浏览器不与servlet打交道

图二(服务器端内部流程): 用户发送一个请求,请求访问test1.jsp,然后利用jsp parser(jsp解析器)转换为java文件(服务器端进行转化),这个java文件就是servlet,然后通过servlet解析器将对应的java文件编译出对应的class文件。

当jsp是第一次被访问时,servlet解析器需要将对应的java文件解析成class文件按,若不是,则直接响应。(所以,我们当我们第一次访问jsp页面的时,访问的速度有些慢)

表单中action="/login" 指的是相对路径

action="login"指的是绝对路径

jsp都会转化成servlet去执行

jsp

jsp语法,包括三类:

1.编译器指令:如<%@ page.....%> ,<%@ taglib....%>,<%@ include....%>

2.脚本语言 如注释<!-- --> <%-- --%>

3.动作语言: <jsp:forword> <jsp:....>

<%! int a = 3; %> jsp的声明

<% int b = 3 ; %> jsp的脚本段这两个的区别

在每次刷新页面的时,a--,b不变。本质原因servlet是单例模式的,jsp生成的servlet使用final修饰的

总结:jsp声明的格式为:<%! a = 3; %> 脚本段的形式:<% b = 3; %>,当服务器将jsp转换为servlet时,会将jsp中的声明部分转化为类的成员变量,而将脚本语言转化成方法中的局部变量,servlet是单例模式的,这样成员变量的值就一个,每个用户都会访问到它,而脚本语言的值是局部变量,每个用户访问的时候,各有一份,互不影响。

转义字符: \" 双引号 \' 单引号 \\反斜杠

\n 换行  \t 制表符  \b 退格

jsp的九大内置对象

1.request 请求对象, 对象代表的是来自客户端的请求,返回一个枚举对象

2.response

3.session  回话对象

4.pageContext 页面上下文

5.application 应用程序对象

6.out 输出对象

7.config 配置对象

8.page 页面对象

9.exception 异常对象

request的getparameter方法的作用是获取客户端通过URL或表单形式请求过来的参数值。是客户端与服务器端的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法来获取。

session对象:session对象代表服务器与客户端所建立的会话。HTTP是基于请求响应模式的无状态的协议,且web server对每个客户端的请求都没有历史记忆。当需要在不同的jsp页面中保留客户信息的情况下,使用session。session是用来保存客户端状态信息的。session对象在会话过程中只有一个。

session常用到的方法有:getAttribute和setAttribute,这两个方法在request和application中都有,并且用法相同

只是,只是,request只能单页面请求,响应,因为request中的这两个方法都是在服务器端执行的,客户端不知道服务器端是否执行过这两个方法。

然而在application中,application是基于应用程序对象,它的生命周期是整个应用程序,也就是服务器启动开始到服务器关闭结束。所以它用它存储的内容数据,会一直存在,知道服务器关闭才销毁。

因为博客中不允许打包实例,所以将实例发表到csdn上面,名字叫:我笨行了吧的账号上面

servlet与jsp理论知识讲解的更多相关文章

  1. Servlet和JSP知识总结

    1.Servlet接口有哪些方法及Servlet生命周期 Servlet接口定义了5个方法,前三个方法与Servlet生命周期有关: void init() void service() void d ...

  2. 你也可以当面霸-Servlet与JSP的原理及特点

    既然是面试系列,就是面试官和应聘者之间的对话.本文是采用一问一答的形式呈现给读者的,这样能有一个明确的考察点,不像理论知识那么枯燥. 01.什么是Servlet技术 Servlet是和平台无关的服务器 ...

  3. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  4. Servlet过滤器和监听器知识总结(转)

    Servlet过滤器和监听器知识总结(转)  Servlet过滤器是 Servlet 程序的一种特殊用法,主要用来完成一些通用的操作,如编码的过滤.判断用户的登录状态.过滤器使得Servlet开发者能 ...

  5. hibernate 结合servlet及 jsp 的使用

    Hibernate结合JSP使用 前面几章详细的介绍了Hibernate的相关知识,这一章介绍Hibernate结合JSP和Servlet的使用,通过这一章的学习,可以加深对Hibernate的理解. ...

  6. JAVAWeb入门之JSP基础知识

    也是到了考试周,很多课都结了,准备去学点新东西.随后就开始自学JAVAWeb. 要学习JAVAWeb,首先需下面的知识: a)      HTML/CSS/JS(前端页面),XML,JSON,vue ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_3-02CAP理论知识

    笔记 2.分布式应用知识CAP理论知识     简介:讲解分布式核心知识CAP理论 CAP定理:             指的是在一个分布式系统中,Consistency(一致性). Availabi ...

  8. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...

  9. 掌握AI学习路上核心理论知识,你绝对不能错过这份最全资料包

    人工智能成为当下科技发展的代表之一,持续受到了不少追捧,不管你是否是这一专业的学生或者职场人,学习并掌握一项新潮技能总是不会被同龄人淘汰的.我曾经问过别人.也被别人问过关于学习人工智能(AI)最好的方 ...

随机推荐

  1. java 字符串压缩长度并解压

    package com.wy.data.emaildata.util; import org.apache.commons.io.FileUtils; import java.io.ByteArray ...

  2. win7 x64 dtrace

    1.下载WINDOW DTRACE 工具 https://github.com/prash-wghats/DTrace-win32 2.系统参数修改 bcdedit/set testsigning o ...

  3. XCode 4.3 Unable to load persistent store UserDictionary.sqlite 以及 ios simulator failed to install the application

    I have been working on an iOS app for some time, all of a sudden I am getting the following crash ev ...

  4. Segmentation fault(core dumped) 调试

    ReadingList: https://mytechrants.wordpress.com/2009/05/22/debugging-a-segmentation-fault-using-gdb/ ...

  5. H5 手机横竖屏判读

    $.fn.screenCheck = function() { var pDiv = $('<div></div>'); pDiv.addClass("screenC ...

  6. caffe搭建--WINDOWS+VS2013下生成caffe并进行cifar10分类测试

    http://blog.csdn.net/naaaa/article/details/52118437 标签: windowsvs2013caffecifar10 2016-08-04 15:33 1 ...

  7. Canvas学习笔记——动画环境中的边界

    在动画中经常要处理边界问题,比如一个物体运动到了边界,要怎么处理才合适呢?通常有几种以下几种方式: 让物体消失 // > 16 & 0xff, g = color >> 8 ...

  8. MAC如何查看某个端口的占用情况

    执行如下命令: lsof -i tcp:8080 #8080为查询的端口号 会展示该端口的使用情况,然后kill -9 PID的值即可关闭该端口

  9. jquery live hover

    $("table tr").live({ mouseenter: function() { //todo }, mouseleave: function() { //todo } ...

  10. 获取一组radio按钮选中的值Value

    1.效果 2.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...