Jsp&Servlet(3)

Jsp基础语法

page指令介绍

  • Markdown
  • 我们在创建一个jsp文件的时候就可以在它的头部看到这些东西。
    1
    2
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

scriptlet标签

  • 在scriptlet标签中我们可以嵌入Java代码。
  • Markdown
  • Jsp文件第一次编译的时候就变成了Servlet文件。
  • 第一种里面定义的是全局的东西。
  • 第二种里面定义的是局部的东西。
  • 第三种的作用和out.print的作用相同,这里输出的是一个局部变量。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <%!
    String str="全局变量";
    %>
    <%!
    public void fun1(){
    System.out.println("全局方法!");
    }
    %>
    <%!
    class C{
    private int a;
    public void f(){
    System.out.println("a的值是:"+(a+"")+" 全局类!");
    }
    }
    %>
    <%
    int b=1234;
    String str="Java";
    out.println(b+str+"局部变量!"); // out.println是一个内置对象,它可以直接在网页中进行输出。
    %>
    <title>Insert title here</title>
    </head>
    <body>
    <%=b %>
    </body>
    </html>

Jsp注释

  • Markdown

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>注释</title>
    </head>
    <body>
    <h1>Jsp注释</h1>
    <%-- Jsp注释,客户端不可见 --%>
    <%
    int a=1; // Java注释
    /* int b=2;
    int c=3; */
    %>
    </body>
    </html>
  • Markdown

Jsp包含指令

  • Markdown
  • 静态包含:就是先把文件先都包含进来然后再进行编译处理。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert into title here</title>
    </head>
    <body>
    <h1>静态包含</h1>
    <%@ include file="common/head.html" %>
    <p>Content</p>
    <%@ include file="common/footer.jsp" %>
    </body>
    </html>
  • 它包含的是Markdown

  • MarkdownMarkdown
  • 效果Markdown

  • 动态包含:每个文件先自己运行(即为先自己把效果运行出来),然后再包含进来。

  • 注意了,一般开发都是用的动态包含,因为 静态包含可能会出现一些什么变量名的冲突啊之类的
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>
    <%-- <h1>静态包含</h1>
    <%@ include file="common/head.html" %>
    <p>Content</p>
    <%@ include file="common/footer.jsp" %> --%>
    <h1>动态包含</h1>
    <jsp:include page="common/head.html" />
    <p>Content</p>
    <jsp:include page="common/footer.jsp" />
    </body>

Jsp跳转指令

  • Markdown
  • 内部跳转
  • 我们要实现从forward.jsp这个页面跳转到target.jsp这个页面去。
  • forward.jsp代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <jsp:forward page="target.jsp">
    <jsp:param value="java1234" name="userName"/>
    <jsp:param value="123456" name="password"/>
    </jsp:forward>
    </body>
    </html>
  • target.jsp代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    服务器内部跳转后的页面<br>
    userName:<%=request.getParameter("userName") %><br>
    password:<%=request.getParameter("password") %><br>
    </body>
    </html>
  • Markdown

  • 内部跳转有个特征就是:虽然从forward.jsp跳转到了target.jsp,但是上面的链接没有发生跳转。
  • Markdown