jsp概述

JSP(Java Service Page)Java 服务页面

保存在服务器端的动态网页的一种技术,必须借助应用服务器进行访问

jsp包括:html  / css /  js / java

jsp实际上是一个java文件,服务器加载页面前,会将jsp文件转换为.java文件,然后编译成.class文件运行,可以在Tomcat-work-Catalina-...目录中找到

jsp页面标签

若没有特殊标记,jsp标签就是html标签

特殊标签:

<%@  头部声明  %>

<% java 代码 %>

<%= java 对象名 %>用于在页面中输出值

<%!  定义函数和变量  %>建议在这里面定义,当然也可以在其他地方定义(java代码部分)

注意:要搞清楚  哪些在服务器端跑(java代码)   哪些在客户端跑(HTML代码)

JSP 九大内置对象 

out对象

将信息直接输出到页面中

out.write()  

out.print()  一般用这个,这个是write()的封装版,更强大

 request    请求

 a) 浏览器发送请求的方式:

 1) 地址栏输入请求的内容

   http://localhost:8080/day02/demo02.jsp?name1=value1&name2=value2...

 2) 提交表单

 form action , method

 form control , name

 3) 超链接

 跳转到demo06

 4) ajax  待书写。。。。

 请求方式的区别 之 get / post

 1) get在浏览器地址栏可以看见数据,post则不行

 2) get请求是把数据放在请求头中的,post是放在请求体中的,get请求的大小上限为 2kb , post请求的大小默认是无上限

 3) get传送的数据是原始未加密的数据,post传送的数据是经过加密的

 接受请求:  无论表单提交方式 是 get / post

1) String request.getParameter( String name );

 2) String[ ] request.getParameterValues( String name );

请求乱码的处理:

 request.setCharacterEncoding("utf-8");

 响应乱码的处理:

 response.setCharacterEncoding("utf-8");

 response 响应

响应分为 响应头 和 响应体

 响应头 中 包含 响应码 response code

 200( OK )   302(重定向) 304(未修改)

 400   401   403   404

 500   501   502   503

application : 应用程序级变量

整个应用程序中只存放一份,所有用户 公用同一份的 

HTTP协议

一种 无状态的协议,即客户端每次发送请求,都会将自身独有的信息(cookie)发送给服务器,告诉服务器“我是谁”,在这之后客户端与服务器相互之间就不认识了(没有交互),也就是说,客户端发送一次请求,服务器响应之后,客户端显示完数据后,服务器关闭(网络断链)客户端页面依然存在,直到客户端发送下一次请求

session : 会话

一次会话的过程中,可以在服务器端保留变量

 session 最大的特征是 可以跨页面存储变量 

 // 创建 session

session.setAttribute( String name , Object value );

// 使用 session 

Object session.getAttribute( String name );

// 手动销毁 session

session.removeAttribute( String name );

session 的 生存周期:

 1) session 在客户端持续一段时间没有发送请求后,会自动销毁 , 默认是30分钟

 server.xml

 

 

 2) 服务器关闭 / 重启 

 3) 客户端关闭

 session 是针对每个客户端单独一份的 , 互相不干扰的 

config

 page

 pageContext

exception

 引用的外部的 jar 包, 放置在 /WebRoot/WEB-INF/lib 目录下即可

 "jdbc:mysql://localhost:3306/day02?characterEncoding=utf8&useUnicode=true&useSSL=true&timeZone=PRC"

   jsp中页面跳转的两种方式:

 1) 重定向 

 response.sendRedirect( String url )

 把响应发送到客户端,响应头中 含有 响应码:302 , url

 2) 转发 

 request.getRequestDispatcher( String url).forward(request,response);

cookie : 曲奇饼干

是存储变量的地方 

[注意]:数据存储在 客户端的浏览器上

用户 可以在浏览器上进行查看 和 修改  document.cookie

[注意]: 客户端再向服务器发送任意请求的时候,都会自动把浏览器上所存储的cookie  打包, 打包在请求头部 ,发送到服务器上去

cookie 是存在浏览器上的,每个 [域] domain 单独一份的

 www.baidu.com
 map.baidu.com
 zhidao.baidu.com
 image.baidu.com
 image.baidu.com/fengjing

 Cookie 的 属性:

 name 

value

 domain 默认是存放在 服务器的 根目录下 "/"

maxAge  获取 / 设置 cookie 的最大生存时间, 时间到,在客户端自动销毁

服务器接受 cookie :

 Cookie[ ] request.getCookies

服务器创建 cookie :

 Cookie cookie = new Cookie( String name , String value );

 服务器通过 响应 response.addCookie ( Cookie cookie ) , 把 新增/修改过的
 cookie 发送回客户端,客户端收到响应后,自动从响应头中解析cookie
 的内容,更新本地的cookie

服务器删除cookie

 重新给该cookie 设置 过期时间,让其立刻过期即可

 

  JSESSIONID ?????

SESSION 中存放的是 键值对, COOKIE 中 也是一样
SESSION 存放在 服务器上, COOKIE 存放在 客户端上
SESSION 可以单独删除, COOKIE 是 每一对键值对,都可以单独设置过期时间 
SESSION 默认是 把 SESSIONID 存放在 COOKIE 中的,如果浏览器禁用 COOKIE , 会 导致 SESSION 无法使用  

如果 禁用了 COOKIE 仍旧 希望使用 SESSION , 可以自己在请求中添加 JSESSIONID
    servlet 提供了方法来帮我们实现该功能

 String newURL = response.encodeURL ( String originalURL );
     该方法判断浏览器是否禁用了 cookie, 如果禁用,则在url中添加jsessionid , 
    实现 session 的功能

 

你可能感兴趣的:(jsp概述)