该怎么学习JSP???

   如何用JSP操作页面?JSP的基础值怎么掌握(1)
    
    这一篇介绍一下JSP的一些语法和属性,
    
    JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。

JSP本质 就是Servlet     开发JSP页面 ---->xxx.java----->xxx.class

转换规则     login.jsp -----> login_jsp.java------>login_jsp.class

基本语法-表达式

JSP脚本表达式(expression)用于将程序数据输出到客户端

语法:<%= 变量或表达式 %>
      
举例:输出当前系统时间:<%= new java.util.Date() %>

JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.print(…) 将数据输给客户端。

注意:JSP脚本表达式中的变量或表达式后面不能有分号(;)。


基本语法-java脚本

JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。
语法:
    <%
            多行java代码

    %>


注意事项:


在<%     %>中可以定义变量、编写语句,不能定义方法。
JSP脚本片断中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet的_jspService方法中。

JSP脚本片断中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。

在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。
<%
     for(Goods g : list){
 %>
     <tr><td><%=g.getId()%></td><td><%=g.getName()%></td></tr>
 <%  } %>



 
基本语法-声明

JSP页面中编写的所有代码,默认会翻译到servlet的service方法中, 而Jsp声明中的java代码被翻译到_jspService方法的外面。
语法:

    <%!
        java代码        //静态代码块、成员变量和方法
    %>



JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法 。


基本语法-注释

在JSP中,注释有两大类(3种):

   显式注释:
直接使用HTML风格的注释:<!- - 注释内容- ->

   隐式注释:
直接使用JAVA的注释://、/*……*/
JSP自己的注释:<%- - 注释内容- -%>


JSP指令简介

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

page指令
Include指令
taglib指令


JSP指令的基本语法格式:<%@ 指令 属性名="值" %>


Page指令

<%@ page contentType="text/html;charset=gb2312"%>
如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。
例如:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date"%>
也可以写作:
<%@ page contentType="text/html;charset=gb2312" import="java.util.Date"%>



page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。例如:

如图(1)


page指令的import属性

在Jsp页面中,Jsp引擎会自动导入下面的包
   
java.lang.*    
    javax.servlet.*    
    javax.servlet.jsp.*    
    javax.servlet.http.*


可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号(,)分隔
    例如:<%@ page import="java.util.*,java.io.*,java.sql.*"%>
上面的语句也可以改写为使用多条page指令的import属性来分别引入各个包或类
    例如:
        <%@ page import="java.util.Date"%>
        <%@ page import="java.io.*" %>
        <%@ page import="java.sql.*" %>

        
page指令的errorPage属性

errorPage属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前Web应用程序的根目录(注意不是站点根目录),否则,表示相对于当前页面
可以在web.xml文件中使用<error-page>元素为整个Web应用程序设置错误处理页面。
<error-page>元素有3个子元素,<error-code>、<exception-type>、<location>
<error-code>子元素指定错误的状态码,例如:<error-code>404</error-code>
<exception-type>子元素指定异常类的完全限定名,例如:<exception-type>java.lang.ArithmeticException</exception-type>
<location>子元素指定以“/”开头的错误处理页面的路径,例如:<location>/ErrorPage/404Error.jsp</location>



注意:如果设置了某个JSP页面的errorPage属性,那么在web.xml文件中设置的错误处理将不对该页面起作用。
        
page指令的的isErrorPage属性

如果某一个jsp页面是作为系统的错误处理页面,那么建议将page指令的isErrorPage属性(默认为false)设置为"true"来显式声明这个Jsp页面是一个错误处理页面。

代码:
<%@ page language="java" import="java.util.*" errorPage="/ErrorPage/error.jsp" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>测试page指令的errorPage属性</title>
  </head>
  <body>
    <%
      //这行代码肯定会出错,因为除数是0,一运行就会抛出异常
        int x = 1/0;
    %>
  </body>
</html>



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%>
<html>
  <head>
    <title>错误信息友好提示页面</title>
  </head>
 
  <body>
           对不起,出错了,请联系管理员解决!
  </body>
</html>




web.xml中使用<error-page>标签

<!-- 针对404错误的处理页面 -->
  <error-page>
      <error-code>404</error-code>
      <location>/ErrorPage/404Error.jsp</location>
  </error-page>

<!-- 针对500错误的处理页面 -->
<error-page>
       <error-code>500</error-code>
       <location>/ErrorPage/500Error.jsp</location>
 </error-page>


 
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>404错误友好提示页面</title>
    <!-- 3秒钟后自动跳转回首页 -->
    <meta http-equiv="refresh"     content="3;url=${pageContext.request.contextPath}/index.jsp">
  </head>
  <body>
    <img alt="对不起,你要访问的页面没有找到,请联系管理员处理!"
        src="${pageContext.request.contextPath}/img/404Error.png"/><br/>
    3秒钟后自动跳转回首页,如果没有跳转,请点击
    <a href="${pageContext.request.contextPath}/index.jsp">这里</a>
  </body>
</html>




将error.jsp页面显式声明为错误处理页面后,有什么好处呢,好处就是Jsp引擎在将jsp页面翻译成Servlet的时候,在Servlet的 _jspService方法中会声明一个exception对象,然后将运行jsp出错的异常信息存储到exception对象中


include指令

include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。

语法:<%@ include file="relativeURL"%>,其中的file属性用于指定被引入文件的路径。路径以“/”开头,表示代表当前web应用。

include指令细节注意问题:
被引入的文件必须遵循JSP语法。
被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容。
由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。

代码:
head.jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<h1 style="color:red;">网页头部</h1>


foot.jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<h1 style="color:blue;">网页尾部</h1>


IncludeTagTest.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>jsp的Include指令测试</title>
  </head>
  <body>
  <%--使用include标签引入引入其它JSP页面--%>
    <%@include file="/head.jsp" %>
    <h1>网页主体内容</h1>
    <%@include file="/foot.jsp" %>
  </body>
</html>


如果正好碰到对的你,请接着看下一篇-学习JSP-



你许久不曾看夜色
也许久不曾落寞
你儿时望着的月亮
从离家那晚跌落了东山
就没再爬起过


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JSPJava Server Pages)和 HTML(Hypertext Markup Language)都是用于创建 Web 应用程序的技术,它们之间有一些区别。 HTML 是一种标记语言,用于创建 Web 页面和 Web 应用程序的静态内容。 HTML 页面是由标签、属性和文本组成的,这些标签和属性描述了 Web 页面中显示的内容和布局。 HTML 页面的内容是在 Web 服务器上静态生成的,因此当用户请求访问一个 HTML 页面时,服务器只是简单地将该页面发送给客户端浏览器。 JSP 是一种服务器端的 Java 技术,允许在 HTML 页面中嵌入 Java 代码。使用 JSP,可以创建动态的 Web 页面,这些页面可以根据用户的请求生成不同的内容。在 JSP 中,可以使用 Java 代码、标签和表达式来生成动态内容,这些内容可以与静态的 HTML 页面组合在一起。 总的来说,HTML 用于创建静态内容的 Web 页面,而 JSP 用于创建动态内容的 Web 页面。因此,如果您需要在 Web 页面中嵌入动态内容,可以使用 JSP,而如果您只需要展示静态内容,那么使用 HTML 就可以了。 ### 回答2: JSPJavaServer Pages)和HTML(Hypertext Markup Language)是用于开发Web应用程序的两种不同技术。 首先,HTML是一种标记语言,用于创建网页的结构和内容。它使用预定义的标签和属性来定义文本、图像、链接等元素。HTML是静态的,意味着它在服务器上被解析并发送给客户端后不会再改变。 JSP是一种动态网页开发技术,它允许在HTML中嵌入Java代码。这意味着可以在页面上执行动态的操作和生成动态内容。JSP使用JSP标签和基于Java的标记来实现动态功能。它允许开发人员将Java代码直接嵌入到HTML页面中,从而可以方便地处理表单提交、数据库操作等。 其次,HTML不支持服务器端的业务逻辑。它主要用于展示信息和定义网页的外观和布局。而JSP允许开发人员在网页中执行服务器端的逻辑操作,比如处理表单数据、查询数据库等。JSP允许将Java代码嵌入到网页中,以实现更复杂的逻辑。 此外,由于JSP允许在HTML中嵌入Java代码,所以可以重用已有的Java类和方法。这使得开发更加高效,因为可以避免重复编写相同的代码。 综上所述,JSP和HTML在功能上有明显的区别。HTML用于创建静态的网页结构和内容,而JSP允许在网页中嵌入Java代码,实现动态的服务器端逻辑。 ### 回答3: JSPJava Server Pages)和HTML(HyperText Markup Language)都是用于构建Web页面的技术,它们之间有以下几个主要区别: 1. 功能:HTML是一种标记语言,用于描述和呈现Web页面的结构和内容。它主要用于显示静态的网页信息。而JSP是一种基于Java的服务器端脚本语言,可以在HTML页面中嵌入Java代码,动态生成网页内容。它具有更强大的功能和灵活性,可实现动态数据的处理和展示。 2. 执行过程:HTML页面是由浏览器直接解析和执行的,它的内容固定,不会随着用户的操作而变化。而JSP页面是在服务器端执行的,它首先被编译为servlet,然后由服务器执行和返回客户端。因此,JSP页面可以根据不同的用户请求和数据变化来动态生成不同的网页内容。 3. 代码复杂度:HTML的语法相对简单,易于学习和编写。而JSP需要掌握更多的Java编程知识和技巧,编写复杂的逻辑和算法。因此,相对于HTML,JSP的代码更加复杂,需要更多的编程技能。 4. 可维护性:由于HTML页面只包含静态的内容,所以其维护相对简单。但在JSP中,由于可能包含大量的Java代码,项目的维护可能会更加复杂,需要更多的工作和注意。 总之,HTML用于静态的页面展示,而JSP用于动态的网页内容生成。在功能、执行过程、代码复杂度和可维护性等方面,JSP具有更多的优势和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值