JSP中需要了解的知识点

JSP 九大内置对象及四个作用域详解

request 请求对象  类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page

JSP中三种注释种类

JSP页面的普通注释<!– 注释内容 – > 注释的内容是可见的,将出现在生成的HTML代码中,此代码将发送给浏览器,然后由浏览器负责忽略此注释。
JSP页面中的隐藏注释<%– 注释内容 –%> 标记的内容客户端查看源码时是完全看不到的。

JSP中java代码块注释:客户端不可见
<% // 注释内容 %> 单行注释
<% /* 注释内容 */ %>多行注释

JSP的页面元素有哪些

在 JSP 2.0 规范中,JSP页面主要包zd括4部分:JSP 指令元素,JSP 脚本元素,JSP 动作元素和注释:
1:JSP指令元素
page(<%@ page …%>)
include(<%@ include file="…" %>)
taglib(<%@ taglib uri=“tagLibraryURI” | prefix=“tagPrefix” %>)
2:JSP脚本元素
声明(<%! deslaration %>)
脚本程序(<% scriptlet %>)
表达回式(<%= expression %>)
3:JSP动作元素

<jsp:include> 动作
<jsp:forward> 动作
<jsp:param> 动作
<jsp:usebean> 动作
<jsp:setproperty ><jsp:getproperty> 动作
<jsp:plugin><jsp:params><jsp:fallback> 动作

4:注释答

<%-- 注释文字 --%>
<% /*Java脚本注释 */ %>
<% /** Java脚本文档注释 **/ %>

请求转发和重定向的异同

请求转发 Servlet(源组件)先对客户请求做一些预处理操作(一般是响应头进行处理),然后把请求转发给其他Servlet(目标组件)来完成包括生成响应结果在内的后续操作。
  重定向 (Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
1、两者都可以实现页面的跳转
2、请求转发是服务器内部转发,浏览器只发出一次请求;重定向时浏览器发出了两次请求,第一次请求得到一个地址,根据得到的地址发出第二次请求才得到内容。
3、请求转发浏览器上的地址不会改变;(302跳转)重定向浏览器上的地址会改变。
4、请求转发的效率更高,重定向的效率低。
5、请求转发可以使用request对象再多个页面间传递参数;重定向不可以。
6、请求转发可能造成表单的重复提交;重定向不会,在表单处理时经常使用重定向解决表单重复提交问题。

请求转发和重定向的实现方法是什么?

在servlet中调用请求转发,重定向的语句如下:
request.getRequestDispatcher(“new.jsp”).forword(request,response);//请求转发到new.jsp
response.sendRedirect(“one.jsp”);//重定向到one.jsp
在jsp页面中调用请求转发,重定向的语句如下:
<jsp:forword page=“one.jsp”/>//请求转发到one.jsp
<%response.sendRedirect(“one.jsp”);%>//重定向到one.jsp

启动tomcat服务用什么命令?

1, 启动tomcat服务
方式一:直接启动 ./startup.sh
方式二:作为服务启动 nohup ./startup.sh &
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
2,关闭tomcat服务
./shutdown.sh

简述Servlet的生命周期

(1)加载和实例化
当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。
(2) 初始化
实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。
(3)服务
初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
(4)销毁
当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。

JSP中include指令和include动作的区别

  1. include指令
    include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护,只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。
    语法:<%@ include file=“sample.jsp” %>
  2. include动作
    jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。
    语法: <jsp:include page=“sample.jsp” flush=“true”> <jsp:param name=“name” value=“value”/> </jsp:include>
    其中参数设置可以没有,如果没有参数设置,则必须采用<jsp:include page=“sample.jsp” flush=“true”/>形式

Tomcat服务的特点是什么?

1免费
2开源
3支持最新标准(SUN的专家经常和TOMCAT的开发人员在一起混)
4更新快
5跨平台

JSP的工作原理是什么?

(1)当用户访问一个JSP页面时,回想一个Servlet容器(Tomcat)发出请求;
(2)如果是第一次请求页面,或页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为(test.class文件);因为这个过程(编译)会耗费一定时间,所以第一次访问或jsp文件有改动时,访问时间有些长;
(3)JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求(比如客户端发送表单,要求servlet:formprocessor.java来处理,则容器会建立一个线程,调用formprocessor.java来处理该请求);如果用户有多个请求,则容器会建立多个线程处理多个请求;
(4)容器执行字节码文件(包括调用的servlet:formprocessor.java字节吗),并将其结果返回到客户端;(返回的最终方式是有servlet输出html格式的文件流)

Cookie的工作原理是什么?

1、创建Cookie
当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就进行如下工作:
①该用户生成一个唯一的识别码(Cookie id),创建一个Cookie对象;
②默认情况下它是一个会话级别的cookie,存储在浏览器的内存中,用户退出浏览器之后被删除。如果网站希望浏览器将该Cookie存储在磁盘上,则需要设置最大时效(maxAge),并给出一个以秒为单位的时间(将最大时效设为0则是命令浏览器删除该Cookie);
③将Cookie放入到HTTP响应报头,将Cookie插入到一个 Set-Cookie HTTP请求报头中。
④发送该HTTP响应报文。
2、设置存储Cookie
浏览器收到该响应报文之后,根据报文头里的Set-Cookied特殊的指示,生成相应的Cookie,保存在客户端。该Cookie里面记录着用户当前的信息。
3、发送Cookie
当用户再次访问该网站时,浏览器首先检查所有存储的Cookies,如果某个存在该网站的Cookie(即该Cookie所声明的作用范围大于等于将要请求的资源),则把该cookie附在请求资源的HTTP请求头上发送给服务器。
4、读取Cookie
服务器接收到用户的HTTP请求报文之后,从报文头获取到该用户的Cookie,从里面找到所需要的东西。

作用:

Cookie的根本作用就是在客户端存储用户访问网站的一些信息。典型的应用有:
1、记住密码,下次自动登录。
2、购物车功能。
3、记录用户浏览数据,进行商品(广告)推荐。
(4)缺陷
①Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
②由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题。(除非用HTTPS)
③Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的。

JSP的四种范围对象分别是什么?

1):pageContext:数据只在当前自身的页面有效;
2):request:数据在一次请求中有效;
3):session:数据在一次会话中有效;若是新开浏览器,则无效;
4):application:数据在当前Wed项目有效,可供所有用户共享。

Session的工作原理

在这里插入图片描述

Session的信息保存在制服务器端,Session的id保存在客户机的cookie中。事实上,在许多服务器上,如果浏览器支持的话百它们就使用cookies,但是如果不支持或废除了的话就自动转化为URL-rewriting,session自动为每个流程提供了方便地存储信息的方法。

Session一般在服务器上设置了一个30分钟的过期时间,当客度户停止活动后自动失效。Session 中保存和检索的信息不能是基本数据类型如 int, double等,而必须是java的相应的对象,如Integer, Double.

Session是服务器端技术,cookie是客户端技术是否正确 ?

正确!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已转行@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值