JAVA学习JSP和Servlet常见问题整理

发布时间 2023-06-13 11:31:39作者: 请别耽误我写BUG

什么是JSP

Java Server Page 结合 java和html在服务端动态生成web页面的技术。

Jsp页面的运行过程

1、请求进入Web容器,将JSP页面翻译成Servlet代码
2、编译Servlet代码,并将编译过的类文件装入Web容器(JVM)环境
3、Web容器为JSP页面创建一个Servlet类实例,并执行jspInit方法
4、Web容器为该JSP页面调用Servlet实例的_jspService方法;将结果发送给用户

servlet是什么

它是运行在web服务端的Java应运程序,可以生成动态的web页面,属于客户端和服务端的中间件。

Jsp与servlet的关系

在运行jsp时,服务端将jsp会编译成一个类,这个类就是servlet。也可以说jsp就是servlet。

Jsp页面的五类脚本元素的功能、写法、并示例

1、注释 <%-- --%>:

<HTML>
<%-- scripting element --%>
</HTML>

2、指令标记 <%@ %> ,指令标记影响JSP页面的翻译阶段:
<%@ page session=”false” %>

3、声明标记 <%! %> ,声明标记允许JSP页面开发人员包含类级声明:
<%! public static final String DEFAULT_NAME = “World”; %>

4、脚本标记 <% %> ,脚本标记允许JSP页面开发人员在_jspService方法中包含任意的Java代码:
<% int i = 0; %>

5、表达式标记 <%= %> ,表达式标记封装Java运行时的表达式,其值被送至HTTP响应流: <B>Ten is <%= (2 * 5) %></B>

Jsp有哪些内置对象,作用分别是什么

1:request:封装了来自客户端、浏览器的各种信息。
作用:request 对象是javax.servlet.http.HttpServletRequest类型的对象,代表客户端的请求信息,主要用于获取客户端的参数和流。

2:responst:封装了服务器的响应信息
作用:response 对象和request是一对相应的内置对象,代表对客户端的响应

3:pageContext:提供了对jsp页面所有对象以及命名空间的访问。
作用:他是用于获取各种范围的名字空间 servlet相关的对象API,并且包装通用的servlet相关功能的方法。

4:session:用来保存会话信息
作用:session 对象是由服务器自动创建的与请求相关的对象,服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。

5:application:servlet 代表了当前应用程序的上下文。可以在不同的用户之间共享信息。
作用:application 对象是javax.servlet.ServletContext类型的对象,可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会整个应用中都有。

6:out:用于向客户端、浏览器输出数据。
作用:out 对象用于Web浏览器内输出信息,负责管理对客户端的输出

7:config:servlet 封装了应用程序的配置信息。
作用: config 对象是javax.servlet.ServletConfig类的实例对象。主要作用是取得服务器的配置信息

8:page:Jsp 指向了当前jsp程序本身。
作用:page 对象代表JSP本身,只有在JSP页面内才是合法的。

9:exception:封装了jsp程序执行过程中发生的异常和错误信息。
作用:exception 对象的作用是显示异常信息,只有在包含 isErrorPage=”true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件

servlet生命周期

1)web容器加载,servlet生命周期开始。
2)servlet调用init方法开始初始化。
3)通过调用service()方法实现,根据不同的请求调用不同的doGet()和不同doPost()。
4)最后调用destory()方法进行,结束服务。

为什么使用过滤器

1.为了解决中文乱码。
2.为了安全问题。
3.管理权限。

servlet中的forward()和redirect()的区别。

1)redirect方法:浏览器将会得到跳转的地址,并重新发送请求连接,者浏览器的地址栏中可以看到跳转后的链接地址,
2)forward()方法:仅是容器控制的转向,在客户端浏览器地址栏中不会显示转向后的地址。

servlet运行机制是/对servlet来说当多个用户访问的时候,会不会造成等待

不会的,因为对于servlet运行机制是以多线程机制,请求一次,系统就分配一个线程

什么是JavaBean

JavaBean就是将控制逻辑值,数据库访问和其他对象进行封装,并且器可以被其他应用调用的对象。