JSP技术概要

一、JSP九大内置对象(自带的,不需要new 也能使用的对象):
1. out:输出对象,向客户端输出内容。
2. request: 请求对象;存储“客户端向服务端发送的请求信息”

  • String getParameter(String name):根据请求的字段名key,返回字段值value。
  • String[] getParameterValues(String name):根据请求字段名key,返回多个字段值value 常用于(checkbox)。
  • void setCharacterEncoding(“编码格式utf-8”) :设置请求编码 (tomcat7及以前默认iso-8859- 1tomcat8以后是utf-8)。
  • getRequestDispatcher(“b.jsp”).forward(request,response); 请求转发 的方式跳转页面 A->B。
  • ServletContext.getServerContext() :获取项目的ServletContext对象。

3. response 响应对象。
4. session 会话对象。
5. application 全局对象
String getContextPath()虚拟路径
String getRealPath() 绝对路径(虚拟路径相对的绝对路径)
6. pageContext
7. page 当前JSP页面对象(相当于java中的this)。
8. exception 异常对象。
9. config 配置对象(服务器配置信息)。

二、四个范围对象:
a) pageContext 当前页面有效(页面跳转后无效)。
b) request 同一次请求有效;其他请求无效(请求转发后有效;重定向后无效)。
c) session 同一次会话有效 (无论怎么跳转都有效;关闭/切换浏览器后无效;从登陆->退出之间都有效)。
d) application 全局变量:整个项目运行期间都有效(切换浏览器 仍然有效);关闭服务和项目无效。
以上四个范围对象,通过setAttribute()赋值,通过getAttribute()取值;
以上范围对象,尽可能使用最小的范围。因为对象的范围越大,造成的性能损耗越大。

三、提交方式
get提交方式:method=”get” 和地址栏、超链接等请求方式,默认都属于get提交方式。
get和post请求方式的区别:

  • get方式在地址栏显示请求信息(地址栏容量是有限的,一般为4KB-5KB)。
  • 文件上传操作必须是post。

推荐使用post
统一请求的编码 request
get方式请求 如果出现乱码,解决:
修改server.xml,更改Tomact默认get提交方式的编码URIEncodeing=”UTF-8
post请求方式修改方式:
Resquest.setCharacterEncoding(“utf-8”);

请求转发重定向
地址栏是否改变不变改变
是否保留第一次保留不保留
请求的次数12

四.、session(服务端)
Cookie(客户端,不是内置对象):Cookie是由服务端生产的,再发送给客户端保存。
相当于本地缓存的作用;
作用:提高访问服务端的效率,但是安全性较差。
Cookie:name=value
Javax.servlet.http.Cookie
Public Cookie(String name,String value)
String getName();获取name
String getValue();获取value
void setMaxAge(int expiry);最大有效期(秒)

服务端准备Cookie:
response.addCookie(Cookie cookie)
页面跳转(转发,重定向)
客户端获取cookie:request.getCookies();
a. 服务端增加cookie:response对象;客户端获取对象:request对象
b. 不能直接获取某一个单独对象,只能一次性将全部的cookie拿到

Session机制:
客户端第一次请求服务端时,(jsessionid-sessionid)服务端会产生一个session对象(用于保存该客户的信息并且每个session对象都会有一个唯一的sessionId(用于区分其他session));
服务端也会产生一个cookie,并且该cookie的name=JSESSIONID,vlues=服务端sessionId的值;然后服务端会在响应客户端的同时将该cookie发送给客户端,至此客户端就有了一个cookie(JSESSIONID);因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID-sessionID)
客户端第二次/n次请求服务端时,服务端会先用客户端cookie种的JSESSIONID去服务端的session中匹配sessionId,如何匹配成功(cookie jsessionid和session sessionid)说明此用户不是第一次访问,无需登录。
cookie和session的区别:

sessioncookie
保存的位置服务端客户端
安全性安全不安全
保存的内容ObjectString

request.getRequestDispatcher和response.sendRedirect的区别:
request.getRequestDispatcher是请求转发,前后页面共享一个request,在服务端运行,可以是servlet和jsp。
response.sendRedirec是重定向,前后页面不是一个request,可以是任意url,适合无值跳转。

tomact服务器将jsp翻译过来的Java代码存放在work\Catalina\localhost目录下,然后进行编译形成class文件,第一次访问jsp页面比较慢,因为要进行翻译和编译,第二次及以后就直接访问class文件,比较快了。这也同时说明了为什么要给Tomact服务器进行jdk环境变量配置了。

jsp标签库:

  1. < jsp:include >标签
    < jsp:include >标签用于把另外一个资源的输出内容插入进当前jsp页面的输出内容之中,这种在jsp页面执行时的引入方式称之为动态引入。
    语法:
<jsp:inclue page="url" | <%=expression%>" flush="true|false" />

page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前jsp页面的已输出的内容刷新到客户端

  1. < jsp:forward>标签
    < jsp:forward>标签用于把请求转发到另外一个资源
    语法:< jsp:forward page=“url|<%=expression%” />
    page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

  2. < jsp:param >标签
    当使用< jsp:include >和< jsp:forward>标签引入或将请求转发给其他资源时,可以使用< jsp:param >标签向这个资源传递参数

语法一:
<jsp:include page="url" | <%=expression%> >
	<jsp:param name="parameterName" value="parameterValue" | <%=expression%> />
</jsp:include >
语法二:
<jsp:forward page="url" | <%=expression%> >
	<jsp:param name="parameterName" value="parameterValue" | <%=expression%> />
</jsp:forward >
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Demo2021

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

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

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

打赏作者

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

抵扣说明:

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

余额充值