4月6日 JSP(01)
JSP技术
Servlet:java编写的处理动态web的技术
特点:把html语句嵌套在java代码中
拼起来很麻烦,而且不能用dreamweaver之类的IDE
JSP 以JAVA语言为基础的网页开发技术
在服务器端执行的。
特点:在HTML代码中嵌套JAVA代码。
Jsp文件-->HttpJspBase--->HttpServlet
JSPServlet JSP引擎
1.在web context root读取指定的文件
2.将读取的文件分析,生成*_jsp.java
3.目录: %tomcat%\work\引擎\主机\项目名\org\apache\jsp
4.将生成的java文件,编译成字节码文件*_jsp.class
5.将生成的class文件(servlet),交给servlet引擎处理
JSP工作步骤:
tomcat调用servlet引擎处理JSP页面
·读取指定文件
·解析,生成相应的Servlet文件,即java文件
·将java文件编译为class文件
·通知servlet引擎处理生成好的servlet
JSP page指令
·JSP指令元素
·格式 <%@ 指令 [attribute=”value”]%>
·功能:1执行某些步骤 2.知识特定行为 3.整体配置信息
·page指令、
·格式:<%@ page....%>
·位置:建议放置在页面的头部
·例如:<%@page pageEncoding=”UTF-8”%>
1.pageEncoding 配置当前页面保存信息的编码
2.contentType 配置当前页面生成的servlet文件响应浏览器的编码
3.import 导包 import=”包名”
·可重复引用
·多个之间用逗号分隔
·最后一个导入的包,末尾可以加多个分号。
4.language 确定当前jsp页面使用的语言,默认值是java
5.info 确定当前页面的输出信息,意义不大
6.Session 确定当前页面是否可以使用session,默认为true
7.extends 确定当前jsp页面在生成servlet文件时继承的父类,扩展用的
8.isErrorPage 是否是错误页面
·默认值为false,设置为true时,当前页面可以使用一个变量 exception
9.errorPage= url 确定错误页面
·当页面出现错误时,跳转到url页面
10.isThreadSafe 线程是否安全
·默认true
·不常用
11.isELIgnored 是否忽略EL表达式
·默认false
·如果设置成true,将忽略EL表达式
12.buffer:当前页面的servlet文件的缓存区大小
·默认8kb
13.autoFlush 是否自动刷新(当缓存区满了之后,会自动再创建一次)
·include指令<%@ include file=” ” %>
·静态包含,引入其他页面,
·将其他页面与当前页面合并成一个页面后,显示给浏览器
JSP脚本元素:
·声明标签
·格式<%! java方法或字段%>
·此标签中的内容在JSP引擎生成servlet文件时将直接拷贝
·表达式标签
·格式:<%= Java表达式%> 等号右面的部分
·JSP引擎将自动输出信息到浏览器上
·等价于 out.print(“表达式”);
·程序代码标签
·格式:<% Java代码片段(相当于方法) %>
·任何方法里面的内容
·将标签内容完全拷贝,放置到service方法体中
JSP脚本案例:
输出h6----h1
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP ‘First.jsp‘ starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
for(int i = 6;i > 0 ; i --)
{
%>
<h<%= i%>>abcdefghijklmn</h<%= i%>>
<% } %>
</body>
</html>
//九九乘法表
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP ‘First.jsp‘ starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
for(int i = 1 ; i <= 9 ; i++)
{
for(int j = 1 ; j <= i ; j++)
{
%>
<%=i+"*"+j+"="+i*j %>
<%
}
%>
<br/>
<%
}
%>
</body>
</html>
JSP注释
格式:<%--注释内容--%>
JSP注释仅在源码级别有效
JSP内置对象
个数9
在JSP页面中隐藏的java对象
Object page
·当前类的引用,返回Object(不常用)
·作用范围:当前页面
HttpServletRequest request
·作用范围:一次请求(可能涉及JSP或Servlet,技术为转发)
ServletContext application
·作用范围:整个web项目
HttpSession session
·作用范围:一个会话
ServletConfig config
·当前Servlet的配置
·可以单独配置,把JSP文件当成Servlet使用
在XML文件中,注册jsp
<servlet>
<servlet-name>jspfile</servlet-name>
<jsp-file>/obj.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>jspfile</servlet-name>
<url-pattern>/jsp</url-pattern>
</servlet-mapping>
访问方法:
1.使用tomcat,servlet引擎
http://localhost:8080/day/obj.jsp(访问不到配置信息)
2.自定义访问路径
HttpServletResponse response
·响应
·使用的是Writer,所以getOutputStream是出现异常的,因为两个流只能开一个
JSPWriter out
·输出流
PageContext pageContext
·当前JSP页面的上下文对象,管理当前JSP页面的
·具有其他隐式对象的引用
·设置属性的值setAttribute(name,value,作用域)
·getAttribute(name) 输出
·作用域优先级:
Page>request>session>application
Throwable exception
·错误页面中获得异常信息
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。