JSP详解与实例

本文将对JSP进行概述,在详细讨论JSP页面中的注释,隐式对象以及三个句法元素:指令、脚本元素、动作


JSP概述:

第一次请求一个JSP页面时,Servlet/JSP容器要做两件事:


1.将JSP页面转换成一个JSP页面实现类

2.如果转换成功,Servlet/JSP容器将会编译Servlet类。容器加载和实例化java字节码,并执行它通常对Servlet所做的生命周期


一、备注


JSP页面可以使用两种备注:


1、JSP备注

以<%--    --%>为备注,JSP备注不会被发送到浏览器,也不能进行嵌套

2、HTML/XHTML备注

<!--   -->为备注,该备注不是有容器处理,而是发送到浏览器


二、隐式对象


1、pageContext 提供了有用的context信息,并通过一些方法来访问与Servlet有关的各种对象

例如:getRequest,  getResponse,  getServletContext,  getSession,  getServletConfig

pageContext中的setAttribute方法:

void setAttribute (String name,Objext value,int scope)

scope可以是PAGE_SCOPE , REQUEST_SCOPE,  SESSION_SCOPE,  APPLICATION_SCOPE,

page 属性只能在同一个JSP页面使用,request是指当前的ServletRequest ,session是指当前的HttpSession ,application是指ServletContext

2、out  类似与HttpServletResponse中调用getWrite方法

3、另外还有request、response,session,application、config、page、exception隐式对象



例;

</head>
  
  <body>
   <b>Http headers:</b> <br>
   <%
   for(Enumeration<String> e=request.getHeaderNames();e.hasMoreElements();){
        String header=e.nextElement();
        out.println(header+":"+request.getHeader(header)+"<br/>");
   }%>
   <hr/>
   <%
      out.println("Buffer size:"+response.getBufferSize()+"<br>");
      out.println("Session id:"+session.getId()+"<br>");
      out.println("Servlet name:"+config.getServletName()+"<br>");
      out.println("Server info"+application.getServerInfo()); 
   %>
  </body>
</html>

三、指令

1,page指令

语法如下:

<%@page  attribute1=" value1" attribute2="value2" ...%>

page指令的属性列表:

    import: import=“java.util.List.*”    多个类型用逗号隔开,*通式符可以导入整个包

    session:值为true时,表明这个页面参与session管理,默认是true;值为false时,不参与Session管理

    buffer:指定隐式对象out的缓冲区的大小,kb为单位

    autoFlush:默认值为true,表示缓冲区为满时自动刷新输出,值为false时,只有调用response隐式对象的flush方法才会刷新,溢出时抛出异常

    errorPage:表示处理可能出现的错误的页面

    isErrorPage:表明这个页面是否处理错误

    contentType:指定该页面response对象的内容类型,默认“text/html”

    pageEncoding:指定该页面的字符编码


page指令可以出现在页面任何位置,只有当包含contextType,pageEncoding类型时,必须放在模板前面


2、include指令:

语法:<%@include  file="url"%>      url是表示一个文件的相对路径,如果以正斜线/开头,则表示绝对路径

可以将另一个文件的内容放在当前的jsp页面中

如:<%@include file="copyright.jspf"%> 为了使该指令成功,copyright.jspf必须放在同一个目录下

按照规范,include文件的拓展名为jspf,表示JSP fragment 


四、脚本元素

1、java代码块

<%  %>

2、表达式

<%= %>

3、声明

<%! public String getTodaysDate(){

    return new java.util.Date();  

     }

 %>

我们可以通过声明一个jspInit方法来覆盖实现类的init方法,声明一个jspDestroy方法来覆盖实现类的destroy方法

<%!

public void jspInit(){

}

public void jspDestroy(){

}

%>


五、动作

1,useBean

<jsp: useBean  id="today" class="java.util.Date"/ >


<jsp: setProperty name="today" property="firstName" value="admin">

该动作在today对象中保存一个属性


2,include

<jsp:include page="menu.jsp">

include动作动态地包含另一个资源,可以包含另一个jsp页面,一个Servlet或者一个静态的html页面

include动作与include指令的区别:

include指令使用时是发生在页面转换的时候,使用include动作时时发生在请求时,include动作相当于请求转发

使用include指令时,被包含的资源的文件拓展名并不重要,而使用include动作时,文件拓展名必须为jsp


3、forward

<jsp: forward  page="login.jsp">

forward动作时将当前页面跳转到另一个资源



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、 begin、end和step的用法 13 、 循环 14、 varStatus 的四种属性 15、 的用法 16、从客户端传送数据至服务端 17、使用Unicode转义字符 18、使用朝鲜语字符集 19、JSP中最简单的国际化程序 20、错误检测 21、抛出异常 22、 的用法 23、和 的用法 24、 的用法 25、jsp-include的用法 26、汉字处理 27、网页重定向 28、自动更新网页 29、存取session 30、 的用法 31、单选型列表框 32、jsp文件中定义类 33、取得 JSP Container 版本 34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所提供的方法 42、 网上测验 43、HttpSession - session 对象 44、 多选型列表框 45、解决浏览器 cache 的问题 46、使用 EL、JSTL 处理表单数据 47、 EL隐含对象 param、paramValues 48、EL隐含对象 pageContext 49、EL算术运算符 50、EL关系运算符 51、EL的运算符 52、选择钮的使用 53、检查框的使用 54、群组检查框的使用 55、数字、货币、百分数格式化 56、日期格式化 57、JSTL设置语言地区 58、Cookie数据的存取 59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 Request的 JavaBean 67、范围为 Session 的 JavaBean 68、范围为 Application 的 JavaBean 69、删除 JavaBean 70、url重组 71、Switch语句 72、环境变量 73、forward重定向 74、文件的建立与删除 75、取得文件属性 76、取得目录中的文件 77、目录的建立与删除 78、自Cookie存取日期/时间数据 79、管理Session变量 80、数据库中的记录数与记录指针位置 81、利用absolute方法设置记录位置 82、使用jsp指令生成Word文档 83、JSP网页模板 84、判断是否空白文件 85、cookie 用户登录次数 86、获取用户的真实IP地址 87、获取用户的浏览器信息 88、在客户端进行数据检查 89、在JSP中获取当前绝对路径 90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值