一、JSP的页面组成
- JSP指令
指令标签不会产生任何内容输出到网页中,主要用来设置jsp页面的相关信息,用的什么语言,导入的类库,字符集…
<%@指令名称 属性名称=“value”…%>
指令名称:page、include、taglib
属性名称:1.language 指定当前页面嵌套的语言
2.contentType设置jsp编译后网页的字符集
3.pageEncoding 设置页面字符集
4 import.导入的类库
2.小脚本
<%
java代码(注意规范)
%>
3.表达式
<%= %> 不允许加分号,将表达式的结果输出到jsp页面中,最终结果都会转换成字符串
4.声明
<%!> 在声明中的所有代码全是全局代码,将存在类中,而不是方法中。
5.注释
html注释 会发送给客户端
<%-- jsp注释 --%> 只会展示到jsp文件中,编译成Java代码后会自动删除
<%
//单行注释
/* 只显示在编译后的Java文件中不会发送给客户端
多行注释
*/
%>
二、JSP的执行流程
当用户通过浏览器访问服务器的时候
1.找到jsp文件有Tomcat翻译成Java文件,将编译后的文件发送到work下
2.将Java文件编译成class字节码文件
3.找到class字节码文件输出给客户端
三、JSP九大内置对象
1.request
2.response
3.session
4.pageContext
5.out
6.config
7.exception
8.page
9.application
四、Request常用方法总结
getParameter(String paraName) : 获取请求数据
getParameterValues(String paraName) : 获取相同名称的多个值
getCharaterEncoding() : 设置一次请求的字符集
getParameterMap() : 获取请求的所有数据(key-value)
getHeaderNames() : 获取客户端发送过来的请求头的所有信息
getRemoteAddr() : 获取请求的客户端的地址(ip:port)
getRemoteHost() : 获取IP地址
getRemotePort() : 获取端口号
五、Session
1.session对象代表一次用户会话,一次会话是指:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止(关闭浏览器)
2.session通过用于跟踪用户会话,购物车中使用
3.session1范围内的属性可在多个页面跳转之前共享。
六、转发和重定向
区别:
1.转发使用getRequestDispatcher().forword,重定向使用sendRedirect()
2.转发浏览器URL地址栏不变,重定向浏览地址栏改变
3.转发是浏览器内部的操作,重定向是客户端的操作
4.转发浏览器只请求一次,重定向请求两次
5.转发过程request信息不会丢失,重定向因为两次跳转所以request会改变
选择:
1.重定向速度慢,因为浏览器还要发送一次请求。当两个使用都无所谓时推荐使用转发。
2.转发只能访问通web项目下的页面,如果需要访问不同web项目下的页面必须使用重定向
3.数据库的增,删,改使用重定向,查询无所谓。