javaweb(四):jsp页面元素及内置对象

文章目录

1 页面元素

1.1页面元素一 脚本 Scriptlet 及脚本的三种形式

1.1.1 <% %>

<% 定义局部变量,java语句 %>注意,在此处的java语句println与print的效果是一样的,不会换行,要想换行需要加<br/>

1.1.2 <%! %>

<%! 定义全局变量,定义方法 %>

1.1.3 <%= %>

<%=输出表达式 %>表达式不加分号
以上形式可以直接解析html语句。
一般而言,修改web.xml,配置文件,java需要重启tomcat,但是如果修改Jsp/html/css/js,不需要重启。
在这里插入图片描述
图一

在这里插入图片描述
图二

1.2页面元素二 指令

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
page指令 page指定的属性:

  • 1 language jsp页面使用的脚本语言
  • 2 import 导入类
  • 3 pageEncoding:jsp文件自身编码 jsp转成java时用的编码
  • 4 contentType : 浏览器解析jsp

1.3页面元素三 注释

  • html 注释 <!-- -->
  • java注释 // /* */
  • jsp注释<%-- --%>

2 内置对象

2.1 request:请求对象;存储客户端向服务端发送的请求信息

2.1.1 request常见的方法

2.1.1.1 String getParameter(String name) :根据请求的字段名key,返回字段值value
2.1.1.2 String [ ] getParameterValues(String name) :根据请求的字段名key,返回多个字段值 value (checkbox)
2.1.1.3 void setCharacterEncoding(“编码格式uef-8”) :设置post请求编码(tomcat7 以前默认iso-8859-1,tomcat 8以后改为了urf-8)
2.1.1.4 getRequestDispatcher(“b.jsp”).forward(request,response); :请求转发的方式进行跳转
2.1.1.5 getServerContext():获取项目的ServletContext对象
2.1.1.6示例:注册

register.jsp —> show.jsp
在这里插入图片描述
图一
在这里插入图片描述
图二

2.1.2 get与post提交方法

2.1.2.1 get提交方式

默认的提交方式是get方式,

2.1.2.2 get与post提交方式的区别
  • a.get方式在地址栏显示,请求信息(地址栏能够容纳的信息有限,4-5KB,如果请求数据存在大文件,图片等,会出现地址栏无法容纳全部数据而出错。)
  • b 文件上传操作,必须是post
2.1.2.3 统一请求的编码 request
  • get方式请求 如果出现问题有两种解决办法
    a.统一每一个变量的编码(不推荐)
    new String(旧编码,新编码)
    name=new String(name.getBytes(“iso-8859-1”))
    b.修改server.xml中统一get方式的编码URIEncoding=“UTF-8”
    tomcat7(iso-8859-1)
    tomcat8(utf-8)
  • post方式请求,如果出现问题用以下解决办法
    request.setCharacterEncoding(“utf-8”);
    在这里插入图片描述
    图三
    在这里插入图片描述
    图四
    在这里插入图片描述
    图五
    在这里插入图片描述
    图六1/2
    在这里插入图片描述
    图六2/2
    在这里插入图片描述
    图七

2.2 response

2.2.1 response常见的方法

2.2.1.1 void addCookie(Cookie cookie);服务端向客户端增加cookie对象
2.2.1.2 void sendRedirect(String location) throws IOException;页面跳转的一种方法(重定向)
2.2.1.3 void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)
2.2.1.4 示例:登录

login.jsp—>check.jsp
在这里插入图片描述
图八
在这里插入图片描述
图九
在这里插入图片描述
图十 请求转发与重定向原理图
在这里插入图片描述
图十一 请求转发与重定向的对比图

2.3 session

2.3.1 在学session之前先学Cookie

2.3.1.1 session与Cookie的区别

session(存在于服务端)
Cookie(存在于客户端,不是内置对象):Cookie是由服务端产生的,发送到客户端保存。
在这里插入图片描述

2.3.1.2.Cookie就是本地缓存

相当于本地缓存的作用:客户端(hello.mp3)——>服务端(hello.mp3)

2.3.1.3. Cookie的作用:提高访问服务端的效率,但是安全性较差
2.3.1.4. Cookie内部细节
2.3.1.4.1 Cookie : key=value
2.3.1.4.2 产生Cookie对象的类:javax.servlet.http.Cookie
2.3.1.4.3 常用方法:

public Cookie (String name,String value);构造方法
String getName() :获取name
String getValue() ;获取value
void setMaxAge(int expiry) :最大有效期(秒)

2.3.1.4.4 一个Cookie的流程

前提:cookie 不是内置对象,要使用必须手动new.但是,服务端会自动new一个且仅new一个name=jsessionid的cookie,返回给客户端。
a 服务端准备Cookie给客户端
response.addCookie(Cookie cookie)
b 页面跳转(转发,重定向)
c 客户端获取cookie:request.getCookies();
注意点:1 服务端增加cookie用response对象;客户端获取request对象
2 不能直接获取某一个单独对象,只能一次性将全部cookie拿到,再去遍历获取
在这里插入图片描述
图十二
在这里插入图片描述

图十三

2.3.1.5 案例实现

2.3.2 学session

2.3.2.1 session的定义 就是会话

浏览网站:开始-关闭,
购物:浏览。付款,退出
电子邮件:浏览,写邮件,退出等都是一个session会话
总的来说就是一次开始到一次结束就是一个session

2.3.2.1 session的机制

在这里插入图片描述
在这里插入图片描述

2.3.2.3 session的总结

a.session存储在服务端
b.session是在同一个用户(客户)请求时共享
c.实现机制:第一次客户请求时,产生一个sessionid并复制给cookie的jsessionid然后发给客户端。最终通过sessionid----jsessionid实现一一对应的关系

2.3.2.3 session的方法

1 String getId():获取sessionid
2 boolean isNew():判断是否是新用户(第一次访问)
3.void invalidate();使session失效(退出登录,注销)
4 setAtrtribute() getAttribute()
5 void setMaxInctiveInterval(秒):设置最大有效非活动时间 int getMaxInctiveInterval:获取最大有效时间

2.4 application

2.4.1application全局对象的方法

1 String getContextPath() 虚拟路径
2 String getRealPath( ):虚拟路径对应的绝对路径
在这里插入图片描述
在这里插入图片描述

2.5 out 输出对象,向客户端输出内容。

2.6 pageContext

2.7 config 配置对象(服务器配置信息)

2.8 page 当前jsp页面对象(相当于java中的this)

2.9 exception 异常对象

3 四个范围内置对象

3.1 范围从小到大排序

1 Object getAttribute(String name):根据属性明明,获取属性值
2 void setAttribute(String name,Object obj):设置属性值(新增,修改)
setAttribute(“a”,“b”);//如果a对象之前不存在,则新建一个a对象,如果已经存在,则将a改成b
3 void removeAttrinute(String name):根据属性名,删除对象
1 pageContext JSP页面容器 (有的书里面会说是page对象,要注意不要搞晕了)
当前页面有效(页面跳转后无效)
2 request 请求对象
同一次请求有效:其他请求无效(请求转发后有效,重定向后无效)
3 session 会话对象
同一次会话有效(无论怎么跳转都有效,从登陆到退出之间都有效;关闭切换浏览器后无效)
4 appliation 全局对象
整个项目运行期间都有效(切换浏览器任然有效,关闭服务,其他项目无效)
多个项目共享,重启后仍然有效:JNDI

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值