2021.02.23:Jsp与Servlet

一:Jsp的运行过程

(1)翻译:Jsp文件-->java文件    翻译的作用test.jsp-->test.java

(2)编译:java文件-->class文件   编译的作用test.java-->test.class    Tomcat会编译生成的java文件,生成class文件

(3)实列话:Tomcat创建jsp类的对象  tomcat服务器构造test类对象

(4)提供服务:Tomcat调用Jsp对象的Service方法,生成响应,返回给客户端浏览器,浏览器进行显示

(5)销毁

结果:第一次访问jsp,执行1,2,3,4

           第n次访问执行4

注意:jsp文件修改了或者jsp的临时文件被删除了,要重新走1,2的过程

 

Servlet的生命周期:

1)构造方法    第一次访问

2)init方法   第一次访问

3)service方法

4)destroy方法

Jsp的生命周期

1)翻译;jsp-->java文件

2)编译:java文件-->class文件

3)构造方法   第一次访问

4)init方法   第一次访问

5)service方法   Service()

6)destroy方法  destroy()

Jsp文件的本质

·Jsp文件本质是一个java类,这个java类也遵守Servlet的规范,可以说,Jsp就是一个Servlet

·Jsp文件对应的java类由容器翻译生成

·我们编写的Jsp文件中的所有内容,都将被翻译到java类中,Service方法中,并且放在固定代码后

·可以说,我们写的jsp代码,无非是java类的Service方法的方法体的一部分。

二:jsp的概念,脚本,表达式

Jsp的概念

Jsp是运行在服务器端的组件,用来生成动态页面

Jsp看起来就是Html+java代码,其中Html实现静态部分,java代码实现动态部分

Jsp也必须使用容器运行

Jsp中的脚本,表达式

Jsp表达式

语法:<%=变量或表达式%>

作用:向浏览器输出变量的值或表达式计算的结果

注意:表达式的原理就是翻译成out.print(“变量”) 通过该方法向浏览器写出内容,表达式后面不需要带分号结束。

Jsp脚本

语法:<%java代码%>

作用:执行java代码

注意:原理把脚本中java代码原封不动拷贝到Service方法中执行

Jsp声明

语法:<%!变量活方法%>

作用:声明jsp的变量或方法

Jsp的注释

<%!-- jsp注释--%>

三:Jsp的内置对象

内置对象本质依然是对象,不过不需要定义,不需要创建,可以直接使用

名字是固定的,不能修改,可以直接调用方法

列:request:类型是HttpServletRequest,因此可以直接调用HttpServletRequest中的任意方法

reponse:类型是HttpServletResponse,因此可以直接调用HttpServletResponse中的任意方法

四:Servlet与Jsp之间传递数据

Jsp提交到Servlet时,往往需要把用户输入的一些数据传递给Servlet,Servlet进行处理

Servlet跳转到Jsp时,往往需要把一些数据传递给Jsp,Jsp进行显示

Jsp提交到Servlet中表单提交时:表单的输入都被作为请求参数提交

Jsp提交到Servlet中使用Url提交时,可以通过Url?name1=value&name2=value2形式传递请求参数

Servlet提交到Servlet或者Jsp时使用HttpServletRequest接口中俩个方法

setAttribute(String,Object)

getAttribute(String)

请求参数与请求属性的区别

请求参数是自动封装到请求中的,直接使用请求的getParameter或者getParameterValues获取即可

请求属性是需要自行写代码保存,然后再取出使用,setAttribuute保存属性,getAttribute获取属性,保存属性时都以Object类型保存,所以获取后需要类型强制转换

Servlet与Jsp的作用总结

jsp主要用来显示动态页面,其中静态部分使用html和文本显示,动态部分使用java代码实现

servlet不再用来显示动态页面,而是用来接收客户端传递过来的数据,根据业务逻辑进行处理,然后跳转到不同的页面,在跳转的过程中,如果需要传递数据,则可以使用请求中的setAttribute方法存储属性。

posted @ 2021-02-23 12:06  iLisa  阅读(77)  评论(0编辑  收藏  举报