JSP简介

Posted Vodka~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP简介相关的知识,希望对你有一定的参考价值。

1.

2.在JSP中支持两种注释语法:
-显示注释(允许客户端看见,继承了html的风格)
-隐式注释 (客户端看不见,继承了java风格;以及jsp本身的注释)
-jsp的三种注释
1. // , /**/ 单行,多行注释
2.
3. <%-- jsp 注释 --%>

3.Scriptlet:
-JSP中最重要的部分 Scriplet (脚本小程序),所有嵌入在HTML代码中的Java程序。
-在JSP中一共有三种Scriplet 代码: 都必须使用 Scriplet 标记起来。
第一种: <% %> (java 脚本段,用于定义局部变量,编写语句)
第二种:<%! %> (声明,用于定义全局变量,方法,类)
第三种:<%= %> (输出表达式,输出数据变量或具体内容)

4.JSP指令标签:include的静态包含和动态包含

//静态包含.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
 <title>jsp的指令标签</title>
</head>
<body>
<h1>Hello Vodka!Welcome to my word</h1>
<%--
     1.使用包含操作将重复的代码包含进来继续使用,通常由几个部分组成
          方法一:在每个JSP页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容。
          方法二:将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导入。
          (方法二更好,降低系统耦合度)
     2.实现包含操作有两种做法: 静态包含,动态包含

 --%>
<%--   静态包含:
        -将内容直接进行替换,好比在程序中定义变量一样,在servlet引擎转译时,
       把此文件内容包含了进去(两个文件的源代码整合到一起,全部放到 jspService 方法中,所以只生成了
       一个servlet,所以两个页面不能有同名的变量。耦合度较高,不灵活.
        -将当前页面相应的内容直接替换。



  --%>
<%@include file="header.jsp" %>     <!--相对路径-->
<h3>这里是内容主体</h3>
<%@include file="footer.jsp"%>
</body>
</html>



//Dynamic.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>DynamicInclude</title>
</head>
<body>
<%--
  动态包含:
           -在代码的编译阶段,包含和被包含部分是两个独立的部分,只有当运行时,才会动态包含进来,好比方法调用。
          -<jsp:include page="xxxx.jsp"></jsp:include>
          !!!在动态包含时,如果不需要传参,
          语法的中间不要添加任何内容,包括空格,除非要确认使用参数,否则会报错。
          -动态包含还可以在页面之间传参,接收参数通过request.getParameter(name);
          -可以定义同名变量,效率高,耦合度低。


--%>
    <jsp:include page="header.jsp"></jsp:include>
    <h1>我是当前页面主体的中部区域</h1>
<%
   int a = 1;
   System.out.println(a);
   String str = "888920";
   String url = "footer.jsp";
%>
<%--动态包含传递参数 , name属性不支持表达式赋值,value则支持 ,下面的url不能为空 --%>
    <jsp:include page="<%=url%>">     
        <jsp:param name="UserName" value="Vodka"/>
        <jsp:param name="Account" value="<%=str%>"/>
    </jsp:include>
</body>
</html>


//header.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
   <h1>头部标题</h1>
   <%
     int a = 2;
   %>
</body>
</html>


//footer.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>底部内容</title>
</head>
<body>
   <h1>底部内容栏</h1>
<%
   //  获取动态页面传递的参数
    String Username = request.getParameter("UserName");
    String Account = request.getParameter("Account");
    out.println("从Dynamic页面传过来的参数:" + Username + " , "+ Account);
 %>
</body>
</html>

5.JSP的四大域对象
-四种属性范围:在jsp中提供了四种属性的保存范围,所谓的属性保存范围,指的就是一个设置的对象,可以在多少个页面中或者说哪些地方保存并且可以继续使用。
1.page范围: pageContext,只在一个页面中保存属性,跳转之后无效。
2.request范围: 只在一次请求中保存,服务器端跳转之后依然有效(客户端跳转无效,比如超链接a标签跳转)。
3.session范围: 在一次会话范围内中有效,即服务器接收到新的请求跳转之后依然有效。
4.application范围: 在整个服务器上保存,只要服务器正常运行,所有请求都可以获取数据。

-方法:
1.public void setAttribute(String name,Object o); 设置属性的名称及内容
2.public Object getAttribute(String name); 根据属性名称取属性
3.public void removeAttribute(String name); 删除指定的属性

//FourDomainObject.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>设置属性</title>
</head>
<body>
<%--设置四大域对象--%>
     <%
         request.setCharacterEncoding("UTF-8");
         response.setContentType("text/html;charset=utf-8");

         pageContext.setAttribute("One","王一");
         request.setAttribute("Two","刘二");
         session.setAttribute("Three","张三");
         application.setAttribute("Four","李四");

         out.println("成功设置四大域对象的属性");
     %>

<%--    jsp中的服务端跳转 --%>
     <jsp:forward page="FDOReceive.jsp"></jsp:forward>
</body>
</html>



//FDOReceive
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>接收四大域对象的信息</title>
</head>
<body>
    <%
        //设置请求编码之后
        request.setCharacterEncoding("UTF-8");
        //获取四大域对象上的数据
        String One = (String) pageContext.getAttribute("One");
        String Two = (String) request.getAttribute("Two");
        String Three = (String) session.getAttribute("Three");
        String Four = (String) application.getAttribute("Four");

        out.println("pageContext上的数据是:" + One +"<br>" );
        out.println("request上的数据是:" + Two +"<br>");
        out.println("session上的数据是:" + Three +"<br>");
        out.println("application上的数据是:" + Four +"<br>");
    %>
</body>
</html>

以上是关于JSP简介的主要内容,如果未能解决你的问题,请参考以下文章

线程概念与双向链表粗略比划

JSP页面静态包含和动态包含的区别与联系

Day374.shiro授权&Shiro+jsp整合Springboot -Shiro

用表格和表单制作如下网页。完整html代码

jsp标签简介

Jsp第六课 Jsp简介和初步使用