JSP入门详解

一、基础知识详解

  1.JSP中使用html注释<!-- -->客户端可见,使用jsp注释<%-- --%>客户端不可见(查看源文件只看到空行),单行和多行注释也看不到(//或者/*  */)

  直接在body里面//或者/* */是不幸的,需要在<%%>里面或者<%! %>

  2.page include taglib指令

  pageEncoding是JSP页面本身的编码,contentType是服务器端发送给客户端时候的编码。

  3.JSP脚本和JSP声明

  JSP脚本

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

 脚本的本质是插入到servlet里的service方法。

例如:
 <%
  if (user != null ) {
 %>
  Hello <B><%=user%></B>
 <%
  } else {
 %>
  You haven't login!
 <%
  }
 %>
 转译成:
 if (user != null ) {
  out.println("Hello <B>" + user + "</B>");
 } else {
  out.println("You haven't login!");
 }

 JSP声明

<%!
    String s = "aa";
    int res(int a ,int b) {
        return a+b;
    }
%>

  注意:生命的本质是将生命的变量加入到servlet勒种。

  4.JSP表达式

  调用上面的JSP声明

你好<%= s%> <br/> //表达式后面没有分号
x+y=<%=add(90,8)%> <br/>

 注意:表达式里不能有分号,另外函数必须要有返回值,不能是void,表达式的本质是JSP页面转换成servlet后使用out.println("aa")将对应的值输出。

  5.JSP生命周期

  如果是第一次请求JSP页面,那么tomcat调用jspInit()方法将JSP页面转录成字节码文件,在tomcat下的work下的Catalina目录下可以看到对应的.class文件,如果不是第一次那么会调用jspService方法来显示,每次修改jsp页面,.class会重新编译。

 二、指令和脚本方式调用声明

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>My JSP 'index.jsp' starting page</title>
13     <meta http-equiv="pragma" content="no-cache">
14     <meta http-equiv="cache-control" content="no-cache">
15     <meta http-equiv="expires" content="0">
16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17     <meta http-equiv="description" content="This is my page">
18     <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21   </head>
22   <body>
23     <h1>九九乘法表</h1> <br>
24
25     <%!
26         //表达式方式
27         String printMultiTable() {
28             String s = "";
29             //必须要有int,否则提示变量未声明,无法解析
30             for(int i=1; i<=9; i++) {
31                 for(int j=1; j<=i; j++)
32                 //原来一直提示错误,下面的这行注释里有个%的结束标记,
33                 //黄色和上面的匹配了,删了几哈好了
34                 //不能"<%=i*j"这里面是函数和变量
35                     s += i+"*" +j+ "=" +(i*j) + "&nbsp&nbsp&nbsp";
36                 s += "<br/>";
37             }
38             return s;
39         }
40         //out对象是JspWriter的实例化
41         void printMultiTableByEx(JspWriter out)throws Exception {
42             for(int i=1; i<=9; i++) {
43                 for(int j=1; j<=i; j++)
44                     out.println(i+"*" +j+ "=" +(i*j) + "&nbsp&nbsp&nbsp");
45                 out.println("<br/>");
46             }
47         }
48      %>
49      <hr>
50      <p>表达式方式调用声明</p><br/>
51      <%=printMultiTable()%>
52      <p>脚本方式调用声明</p>
53      <!-- 脚本方式需要有分号 -->
54      <%printMultiTableByEx(out);%>
55   </body>
56 <ml>

时间: 2024-10-28 19:30:20

JSP入门详解的相关文章

gitbook入门详解

gitbook入门详解 在ata上面看了几篇关于gitbook的文章,感觉都是适合之前已经了解过gitbook的同学来学习的,是跳跃式的,说得比较简略,省略了中间的一部分步骤,这并不适合零基础的新人,于是下面向新人详细介绍gitbook. 说到gitbook,很容易联想到git和github,那么它们究竟有什么关系呢? 其实就是java跟javascript的关系,或是雷锋跟雷锋塔的关系,也就是并没有什么关系... gitbook 是一个基于 Node.js 的命令行工具,使用 markdown

Quartz 入门详解 专题

Cron-Expressions are used to configure instances of CronTrigger. Cron-Expressions are strings that are actually made up of seven sub-expressions, that describe individual details of the schedule. These sub-expression are separated with white-space, a

JqueryUIdialog基础入门详解(中文)

JqueryUIdialog基础入门详解(中文) 1 属性   1.11 autoOpen ,这个属性为true的时候dialog被调用的时候自动打开dialog窗口.当属性为false的时候,一开始隐藏窗口,知道.dialog("open")的时候才弹出dialog窗口.默认为:true.   1.12 初始化例:请注意,$(''.selector'')是dialog 的类名,在本例中.selector=#dialoag,以后不再说明.   $(''.selector'').dial

入门:非常基础)的Servlet/JSP配置详解

js|servlet|详解 初学者问的诸如:<怎样配置环境变量><怎样运行Servlet>啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用! 首先是下载工具: 我建议初学者用Editplus+JDK,我觉得如果用例如JB,Eclipse,JCreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步. 可以通过如下地址下载: Editplus(最新版本是v2.11):http://count.skyc

Servlet/JSP配置详解(基础篇)

js|servlet|详解 初学者问的诸如:<怎样配置环境变量><怎样运行Servlet>啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用! 首先是下载工具: 我建议初学者用Editplus+JDK,我觉得如果用例如JB,Eclipse,JCreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步. 可以通过如下地址下载: Editplus(最新版本是v2.11):http://count.skyc

Servlet/JSP配置详解

js|servlet|详解 初学者问的诸如:<怎样配置环境变量><怎样运行Servlet>啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用! 首先是下载工具: 我建议初学者用Editplus+JDK,我觉得如果用例如JB,Eclipse,JCreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步. 可以通过如下地址下载: Editplus(最新版本是v2.11):http://count.skyc

JSP 语法详解

js|详解|语法 HTML 注释 在客户端显示一个注释. JSP 语法<!-- comment [ <%= expression %> ] --> 例子 1<!-- This file displays the user login screen --> 在客户端的HTML源代码中产生和上面一样的数据: <!-- This file displays the user login screen --> 例子 2<!-- This page was lo

XML结构与语法入门详解

现在我们暂且使用"记事本"来创建我们的XML文件吧.先看一个XML文件: 例1: 〈?xml version="1.0" encoding="gb2312" ?〉 〈参考资料〉 〈书籍〉 〈名称〉XML入门精解〈/名称〉 〈作者〉张三〈/作者〉 〈价格 货币单位="人民币"〉20.00〈/价格〉 〈/书籍〉 〈书籍〉 〈名称〉XML语法〈/名称〉 〈!--此书即将出版--〉 〈作者〉李四〈/作者〉 〈价格 货币单位="

PING命令入门详解

1.Ping的基础知识 ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下. Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP工具.它主要的功能是用来检测网络的连通情况和分析网络速度. Ping有好的善的一面也有恶的一面.先说一下善的一面吧.上面已经说过Ping的用途就是用来检测网络的连同情