Servlet接口中有哪些方法?
Servlet接口定义了五种方法,其中前三种与Servlet生命周期相关:
void init(ServletConfig)抛出ServletException
void服务(ServletRequest,ServletResponse resp)抛出ServletException,java.io.IOException
void destory()
java.lang.String getServletInfo()
ServletConfig getServletConfig()
在Web容器加载并实例化Servlet之后,Servlet生命周期开始,容器运行它的init()方法来初始化Servlet。请求到达时调用Servlet的service()方法,service()方法会根据需要调用请求对应的doGet或doPost方法;当服务器关闭或项目卸载时,服务器会销毁Servlet实例,然后调用Servlet的destroy()方法。
转发和重定向有什么区别?
Forward是容器中控制权的变更,这意味着服务器请求资源。服务器直接访问目标地址的URL,读取那个URL的响应内容,然后发送给浏览器。浏览器不知道服务器发送的内容来自哪里,所以它的地址栏还是原来的地址。
重定向是指服务器根据逻辑发送一个状态码,告诉浏览器再次请求那个地址,这样从浏览器的地址栏就可以看到跳转后的链接地址。显然,重定向不能访问服务器保护的资源,但可以从一个网站重定向到其他网站。
Forward更高效,所以在满足需求时尽量使用forward(通过调用RequestDispatcher对象的forward()方法,可以通过ServletRequest对象的getRequestDispatcher()方法获得),这也有助于隐藏实际链接;在某些情况下,例如,如果您需要访问另一台服务器上的资源,则必须使用重定向(通过HttpServletResponse对象调用其sendRedirect()方法来实现)。
JSP的内置对象有哪些?有哪些功能?
JSP有9个内置对象:
请求:封装客户端的请求,其中包含来自GET或POST请求的参数;
响应:封装服务器对客户端的响应;
PageContext:可以通过这个对象获取其他对象;
Session:封装用户会话的对象;
应用:封装服务器运行环境的对象;
Out:输出服务器响应的输出流对象;
config:web应用的配置对象;
页面:JSP页面本身(相当于Java程序中的这个);
异常:封装页面引发异常的对象。
JSP和Servlet是什么关系?
Ervlet是一个特殊的Java程序,运行在服务器的JVM中,在服务器的支持下,可以向浏览器提供显示内容。本质上,JSP是一种简单形式的Servlet。JSP会被服务器处理成类似Servlet的Java程序,可以简化页面内容的生成。Servlet和JSP的主要区别在于,Servlet的应用逻辑在Java文件中,在表示层与HTML完全分离。在jsp的情况下,Java和HTML可以合并成一个文件,扩展名为。JSP。有人说Servlet是用Java写HTML,JSP是用HTML写Java代码。当然,这种说法是片面和不准确的。JSP侧重于视图,Servlet侧重于控制逻辑。在MVC架构模式中,JSP适合充当视图,Servlet适合充当控制器。
解释JSP中的四个作用域。
答:JSP中的四个作用域包括页面、请求、会话和应用。具体来说:
页面表示与页面相关的对象和属性。
请求代表与网络客户端发出的请求相关的对象和属性。一个请求可能跨越多个页面并涉及多个网站组件;需要在页面上显示的临时数据可以放在此范围内。
会话表示与用户和服务器之间建立的会话相关的对象和属性。与用户相关的数据应该放在用户自己的会话中。
Application表示与整个Web应用程序相关的对象和属性,它本质上是一个跨越整个Web应用程序的全局范围,包括多个页面、请求和会话。
会话跟踪有哪些技术?
因为HTTP协议本身是无状态的,为了区分不同的用户,服务器需要跟踪用户会话,也就是注册用户,给他们分配唯一的ID。下次用户在请求中包含这个ID的时候,服务器就可以判断是哪个用户了。
1)URL重写:将用户会话的信息作为请求的参数添加到URL中,或者在URL的末尾添加唯一的会话ID来标识一个会话。
2)设置表单隐藏字段:将与会话跟踪相关的字段添加到隐式表单字段中。该信息不会显示在浏览器中,但会在提交表单时提交给服务器。
这两种方法很难处理跨多个页面的信息传输,因为每次修改URL或者在页面中添加隐式表单字段来存储用户会话相关信息都会非常麻烦。
3)cookie:有两种cookie,一种是基于窗口的,浏览器窗口关闭后,cookie就没了;另一种是将信息存储在临时文件中,并设置存在时间。用户通过浏览器与服务器建立会话后,会话ID将与响应信息一起返回并存储在基于窗口的cookie中,这意味着只要浏览器没有关闭,会话没有超时,会话ID就会被提交给服务器,供服务器在下一个请求中识别用户的身份。您可以在会话中为用户保存信息。会话对象在服务器内存中,而基于窗口的cookie在客户端内存中。如果浏览器中禁用了cookie,有两种方法可以跟踪会话。当然,使用cookie要注意几点:第一,不要在cookie中存储敏感信息;其次,cookie中存储的数据量有限(4k),不能在cookie中存储太多内容;此外,浏览器通常只允许一个站点存储多达20个cookie。当然,与用户会话相关的其他信息(除了会话标识)也可以有cookie,以便于会话跟踪。
4)HttpSession: HttpSession对象是所有会话跟踪技术中功能最强大的。当用户第一次访问网站时,会自动创建一个HttpSession,每个用户都可以访问自己的HttpSession。可以通过HttpServletRequest对象的getSession方法获取HttpSession,通过HttpSession对象的setAttribute方法在HttpSession中放一个值,通过调用HttpSession对象的getAttribute方法并传入属性名来获取保存在HttpSession中的对象。与以上三种方法不同,HttpSession放在服务器的内存中,所以不要放太大的对象在里面。即使当前的Servlet容器可以在内存快满的时候将HttpSession中的对象移动到其他存储设备,这也必然会影响性能。添加到HttpSession的值可以是任何Java对象,最好实现Serializable接口,这样Servlet容器就可以在必要时将其序列化到文件中,否则在序列化过程中会出现异常。
过滤器有哪些功能和用途?
Java Web开发中的过滤器是从Servlet 2.3规范中添加的一个函数,在Servlet 2.4规范中进行了增强。对于Web应用程序,filter是驻留在服务器端的Web组件,它可以截取客户机和服务器之间的请求和响应信息,并对信息进行过滤。当网络容器接收到对资源的请求时,它将确定过滤器是否与资源相关联。如果是这样,容器将把请求传递给过滤器进行处理。在筛选器中,您可以在将请求发送到目标资源之前更改请求的内容或重置请求的标头信息。当目标资源响应请求时,容器也会将响应转发给过滤器,在过滤器中,您可以转换响应的内容,然后将响应发送给客户端。
常见的过滤器用途主要包括:统一认证用户请求、记录和审核用户访问请求、过滤或替换用户发送的数据、转换图像格式、压缩响应内容以减少传输量、对请求或响应进行加密和解密、触发资源访问事件、将XSLT应用于XML输出等。
Filters的相关接口主要有:filter、FilterConfig、FilterChain。
听众的作用和用途是什么?
Java Web开发中的侦听器是一个功能组件,当创建、销毁、修改或删除三个对象(应用程序、会话和请求)时,它会自动执行代码,如下所示:
ServletContextListener:监控Servlet上下文的创建和销毁。
servletcontextattributelistener:监控Servlet上下文属性的添加、删除和替换。
监控会话对象中属性的添加、删除和替换。
ServletRequestListener:监控请求对象的初始化和销毁。
serveleratequeestattributelistener:监视所请求对象的属性的添加、删除和替换。
监控会话的创建和销毁。
补充:会话破坏有两种情况:
会话超时(超时可以通过/tag在web.xml中配置);
通过调用会话对象的Invalidate()方法使会话无效。
1.《jsp服务器 Jsp和Servlet有什么区别?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《jsp服务器 Jsp和Servlet有什么区别?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1081062.html