java 关于JSP的使用
JSP编程
1 jsp 进入 Java Server Pages
Servlet作用: 用java语言开发动态资源( java 流 )的技术.
JSP 作用:用java语言开发动态(java 流)+静态资源(html)的技术
2 JSP特征
JSP 必须交个tomcat服务器解析
JSP 可以写java代码和HTMl代码
3 JSP 执行的过程
1 |
http://IP地址:端口号/项目名称/jsp文件 |
2 |
tomcat中扫描到index.jsp文件 |
3 |
tomcat将index.jsp文件解析为index_jsp.java 文件 |
4 |
tomcat的JDK将 index_jsp.java转换字节码 index_jsp.class文件 |
5 |
tomcat构造和初始化index_jsp对象,其实可以理解为servlet对象 |
6 |
tomcat调用index_jsp.class中的service方法 |
7 |
tomcat的service方式会通过输出流返回HTML代码到浏览器 |
8 |
浏览器接收HTML 并且解析成页面效果显示 |
4 JSP生命周期
1> 翻译 jsp--->java文件
2 编译 java-->class文件( servlet程序)
3 构造方法(第一次访问)
4 _jspInit方法 (第一次访问)
5 _jspService方法
6_jspDestory() 方法
JSP语法
1 JSP 模板
JSP 页面中会自动添加HTML代码,该JSP是模板形式
2 JSP表达式
语法:<%=变量或者表达式%>
作用:向浏览器输出变量或者表示式通过计算后的结果
A 表达式的原理就是翻译成out.prin()流输出HTML/TEXT格式到页面。
B 表达后面是不需要用分号结束的。
3 JSP 脚本
语法:<% java代码 %>
作用:执行java代码
4JSP声明
语法:<% ! 变量或者方法 %>
作用:声明变量和方法 后面JAVA程序可以调用
5JSP注释
语法:<%-- 注释--%>
6 JSP 编译指令 编译前执行
语法:<%@ %>
1 include指令
<%@ include file="top.jsp" %>
在编译成.class文件之前,键将top.jsp里面的所有代码拷贝到当前位置
2 page指令
语法 <%@ page %>
作用:告诉tomcat如何翻译当前jsp文件
<%@ page language="java" --使用的语言 import="java.util.*" --需要导入的类 pageEncoding="UTF-8" --jsp编码方式 contentType="text/html; charset=UTF-8" --tomcat将html流发送给浏览器的文件类型和编码方式 errorPage="error.jsp" --当前jsp页面解析错误的时候就会跳转到error.jsp去 isErrorPage="false" --当前页面是不是错误导向页面 %> |
3 taglib指令
语法<%taglib %>
作用:标签指令 用来解析标签效果
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
7 动作指令 编译后执行
<jsp:动作 />
<jsp:useBean> 用来实例化一个对象 对象名用id表示 class类路径
<jsp:setProperty> 将一个对象中的属性赋值
<jsp:getProperty> 取对象中属性的值
<jsp:useBean id="s3" class="com.bw.bean.Student" ></jsp:useBean>
<jsp:setProperty property="name" name="s3" value="shunge" />
<jsp:getProperty property="name" name="s3"/>
<jsp:forward> 转发到另外的页面 直接跳转到指定的页面
<jsp:forward page="index.jsp"></jsp:forward>
<jsp:include> 包含编译后另外一个页面的信息
<jsp:forward page="index.jsp">
<jsp:param name="username" value="god" />
<jsp:param name="pwd" value="123456" />
</jsp:forward>
<jsp:par
JSP 内置对象
九大内置对象
jsp |
servlet |
|
对象名 |
类型 |
使用范围 |
request |
HttpServletRequest |
请求 浏览器--->服务器 |
response |
HttpServletResponse |
返回 服务器--->浏览器 |
config |
ServletConfig |
用来获取web.xml中的信息 |
application |
ServletContext |
整个项目中的全局信息 |
exception |
Thrawable |
捕获异常 try/catch throws |
page |
this |
当前对象,当前页面对象 |
out |
JspWriter---->PrintWriter |
当前页面输出流 |
pageContext |
PageContext |
当前页面的上下文,整个页面 |
Session |
HttpSession |
会话 浏览器和服务器通讯 |
1 out 对象 JspWriter 带缓冲的PrinterWriter 就是输出流
使用范围是当前页面,超出了当前页无效
PrinterWriter 直接向浏览器输出内容
JspWriter 向Jsp 缓冲区写内容
‘out.print()
‘out.println();
2 pageContext 对象 当前页面的上下文
使用范围是当前页面,超出了当前页无效
存值 pageContext.setAttribute("username","zhangsan"); |
取值pageContext.getAttribute("username") |
3 page==this 对象 一般用在编译指令中 <%@ page %>
4 request 请求 浏览器到服务器
当前请求存属性值 |
request.setAttribute("name","godyang"); |
当前请求取值 |
request.getAttribute("name") |
请求传递参数 |
<a href="b.jsp?name=shunshun"> b.jsp</a> 或者 <form action="b.jsp" method=post > <input type=text name="name" value="shunshun" /> </form>
|
取得请求参数的值 |
request.getParameter(参数名); request.getParameterValues(参数名) |
5 reponse 返回 服务器返回到浏览器
获取返回流 |
PrintWriter out = response.getWriter(); |
返回内容形式 |
response.setContentType("text/html"); |
返回的编码 |
response.setCharacterEncoding("UTF-8"); |
页面重定向 |
response.sendRedirect("index.jsp"); |
浏览器端保存cookie对象 |
response.addCookie() |
|
|
6 session 会话 浏览器和服务器通讯 当浏览器关闭的时候会话结束
当浏览器第一访问服务器的时候就会产生一个会话
保存会话信息 |
session.setAttribute("uname","abc"); |
获取会话信息 |
session.getAttribute("uname"); |
7 application 应用 tomcat启动的时候整个项目就是一个应用
当把值存入应用中,只有当tomcat关闭的时候才销毁
保存应用信息 |
application.setAttribute("app","appInfo"); |
获取应用信息 |
application.getAttribute("app"); |