首页 > 代码库 > servlet与jsp理论知识讲解

servlet与jsp理论知识讲解

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上面,名字叫:我笨行了吧的账号上面