您的位置:首页 > Web前端 > JavaScript

JSP总结(一)

2013-10-24 21:55 561 查看


1)JSP--Java Server Pages

2)拥有Servlet的特性与优点(因为本身就是一个Servlet)

Tomcat在客户端第一次访问hello.jsp的时候帮你转换成servlet代码,并且帮你

编译好。

具体为:

JSP程序由JSP Engine 先将它转换成Servlet代码,接着将它编译成类文件载入执行。

只有当客户端第一次请求JSP时,才需要将其转换、编译。



JSP编程--基本语法

JSP传统语法

1)   Declaration

<% ! accessCount

          void m(){ }

 %>

说明:在此声明的变量、方法都会保留;accessCount会变成类的一个成员变量。(尽量不要设计成员变量!)

也就是说其他客户端上也可以访问到accessCount,这样可以计数访问量。

<% i %>

说明:在此声明的变量、方法不会保留;i是类的一个局部变量。

<% void t(){ } % >这样写jsp将无法编译,因为t()方法会被到_jspService()方法内部,编译无法通过!!!

2)   Scriptlet(java代码片)

<% java代码%>

在jsp中嵌入的Scriptlet是在服务器端计算好了,然后将结果返回到客户端。

3)   Expression(表达式)

<% =request.getParameter("name")%>

4)   Comment(注释)

<!-- html注释 --> :客户端注释

<%--java注释--%> 

5)   Directives(编译指令)

相当于编译期间的命令,jsp转换成servlet之中需要用到的指令。

格式:<%@Directive 属性="属性值"%>

常见的Directive:

a.page

<%@page language="java"|

extends="className"|

import="importList"|  --常用

buffer="none|kb size"| --none:不缓冲,默认缓冲,大小为8K

session ="true|false"   --是否可以使用session,默认true

isThreadSafe="True|false" --默认false(永远不要设成true,因为设成true之后,

会在_jspService()方法前面加上"同步“关键字,客户端访问需要排队,严重影响

访问效率!)

info="infoText"|  --任何字符,没多大用

errorPage="errorPageUrl"|  --当前页面出错的话转到“errorPageUrl”处理

isErrorPage="true|false"|    -- 表示当前页面是一个统一处理错误页面的页面

contentType="contentTypeInfo"|

pageEncoding="gb2312" --常用(解决乱码问题)

%>

b.include(静态包含)--常用

将制定的JSP程序或者HTML文件包含进来。

格式:

<%@include file="fileURL" %>

JSP Engine会在JSP程序的转换时期先把file属性设定的文件包含进来,然后开始执行

转换及编译的工作。(原封不动的把文件的代码copy到该位置,然后进行转换盒编译,只生产一个java和class)

限制:

不能向fileURL中传递参数

    如:不能abc.jsp?user=aaa

因为这样相当于在编译期间传递参数user=aaa;肯定出错,而且也是没有意义的。

另外:

1)包含文件和被包含文件访问同一个request对象。(因为两个文件合并为一个文件)

2)两个文件的字符集要一致!

c.taglib(框架中用的较多)

6)   Action(动作指令)

在运行期间的命令

常见的:

a 、jsp:useBean

      jsp:setProperty

      jsp:getProperty

b、jsp:include(动态包含)--不常用

可以传参数

被包含页面和包含页面的request不是同一个对象,但是被包含页面可以取得包含页面的

request的参数。

静态包含和动态包含的区别:



c、jsp:forward

1.testForward.jsp

<%
response.sendRedirect("IsForward.jsp");

out.println("ddd");
%>

2.IsForward.jsp

<html>
<body>
I am IsForward.jsp page.
</body>

说明:

1)第一个页面转向后,后面的代码out.println("ddd")可以继续执行。

2)这个转换过程是这样的:

客户端输入localhost:/my/testForward.jsp访问testForward.jsp,

服务器会将这个请求返回到客户端,告诉浏览器把地址改为localhost:/my/IsForward.jsp,按下”转到“,

然后客户端访问到IsForward.jsp,然后把结果再返回到客户端。

这个过程效率会受到一定的影响。

也可以在testForward.jsp里面传参数:

<%
response.sendRedirect("IsForward.jsp?name=123");

out.println("ddd");
%>

在IsForward.jsp可以接受到参数:

<html>
<body>
I am IsForward.jsp page.
<%=request.getParameter("name")%>
</body>


 forward 和 Sendredirect的区别



d、jsp:plugin

     嵌入applet

7) 内置对象

     a. out

     b.request

    c.response

    d.session

    e.application

    f.exception

8)JSTL(框架中用的较多)

9)JSF

注意:WEB-INF子目录下面不能放置html

、jsp等文件!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp java 浏览器