4月6日 JSP(01)

JSP技术

 

Servletjava编写的处理动态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/csshref="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/csshref="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

·作用范围:一次请求(可能涉及JSPServlet,技术为转发)

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.使用tomcatservlet引擎

http://localhost:8080/day/obj.jsp(访问不到配置信息)

 

2.自定义访问路径

http://localhost:8080/day/jsp

 

HttpServletResponse response

·响应

·使用的是Writer,所以getOutputStream是出现异常的,因为两个流只能开一个

 

JSPWriter out 

·输出流

PageContext pageContext 

·当前JSP页面的上下文对象,管理当前JSP页面的

·具有其他隐式对象的引用

·设置属性的值setAttribute(namevalue,作用域)

·getAttribute(name) 输出

·作用域优先级:

Page>request>session>application

 

Throwable exception 

·错误页面中获得异常信息

4月6日 JSP(01),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。