JSP的基本语法
- 指令
<%@ page 属性 = " 属性值 " %>
contentType : 页面内容的内型 contentType="text/html;charset=UTF-8"
import : 导入需要用到的包
lauguage : 代表页面的编程语言 language="java"
- 静态代码
页面中所有的静态代码 (html / css / js / 图片等)
- 小脚本
页面中存放Java代码 (<% 代码段 %>)
- 表达式
输出语句,将内容输出到页面 (<%=Java代码%>)
- 声明
能够在页面中编写 java 的方法,该形式已经被彻底废弃了<%! 方法 %>- 注释
html注释:在客户端是能够被看到的 <!-- -->
jsp注释:无法在客户端是能够被看到的
<%--
// 单行注释
/***/ 多行注释
--%>
JSP的运行机制
运行流程:
1. 在客户端第一次请求时,先对 JSP 进行翻译2. 形成 “JAVA” 文件,之后会对 java 文件编译成为”.class“ 文件3. 最后会执行。4. JSP 在第一次执行时,速度较慢,从第二次开始,就会直接使用已经编译好的.class运行,所以性能能够提升。5. 如果对 JSP 中的配置进行了修改,那么服务器一定要重启!
常见的问题
1. 404 问题
- 服务器未启动
- 页面名称输入错误
- 文件夹可能配置问,将页面放置在了WEB-INF目录,该目录是一个系统的配置目录,所以不能够随意访问
web 应用未部署
2. 500问题
服务器中代码出错了,可以查看页面的错误信息结合idea 中输出的信息判断错误点。
JSP的内置对象
JSP
中一共包含
9
个内置对象,最大的特点就是能够直接使用,而无需使用者手动实例化。实例化的过程被web容器完成了。
page pageContext out config exception request response session application
- page : 页面
- pageContext : 页面上下文
- out : 输出
- config : 控制
- exeception : 异常
- request : 一次请求
常用方法:
String getParameter(String name) : 根据表单组件名称获取提交数据
String[ ] getParamentValues(String name) : 获取name值相同的表单的数据
void setCharacterEncoding(String charset) : 指定每个请求的编码
getRequestDispatchar(String path) : 返回一个RequestDispatchar对象,该对象的forward()方法用于转发请求 - response : 响应
sendRedirect(String location) : 重定向。可以通过浏览器,重定向到某个位置(当前服务器、外部的站点资源)setCharacterEncoding(String str) : 设置响应的编码格式 - session : 一次会话
setAttribute(String key,Object value) : 以 key/value 的形式保存对象值
getAtrribute(String key) : 通过 key 值获取对象值
invalidate() : 设置session对象失效
setMaxInactiveInterval(int value) : 设置session最大非活动时间,单位秒
getMaxInactiveInterval() : 获取session的有效活动时间
removeAttrlibute(String key) : 从session中删除指定名称(key)所对应的对象
getId() : session的id名称为JSESSIONID,该id默认情况下,是由cookie创建的。如果cookie被禁用,那么就会通过容器创建一个对应唯一性id,交给session,作为 sessionid。 - application : 应用
转发与重定向的区别
转发 :
- URL地址是不变的。内部资源完成一个跳转过程能够通过request实现带值跳转
- 请求发起后,跳转到目标过程只发起一次请求
- 请求跳转速度又有是在站内,所以速度也比较快。
重定向 :
- URL地址会发生改变。由浏览器发起两次请求,第一次是请求的目标(30x),第二次会有浏览器跳转到目标页面,该过程是一个重定向的过程。
- 不能够通过request实现带值跳转。
由于两次跳转,所以速度相比较转发稍慢。