栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP学习(1)—— 基本语法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP学习(1)—— 基本语法

JSP主要作用是代替Servlet程序回传html页面的数据。

jsp页面和html页面一样,都是存放在web目录下,访问jsp页面也和访问html页面一样。

jsp本质上是Servlet程序,当访问jsp页面时,Tomcat服务器会把jsp页面翻译成java文件。

一. jsp三种脚本

1. 声明脚本:<%! %> (极少使用)

作用:在其中可以声明类属性、方法、静态代码块、内部类等,声明方式与java一样。

2. 表达式脚本:<%= %>

作用:在jsp页面上可以输出数据(整型、浮点型、字符串型、对象)

①所有表达式脚本都会被翻译到_jspService()方法中

②表达式脚本都会被翻译成为out.print()输出到页面上

③由于表达式脚本翻译到_jspService()方法中,所以_jspService()方法中的对象都可以直接使用

④表达式脚本中的表达式不能以分号结束

3. 代码脚本:<% %>

作用:在jsp页面编写需要的功能(写的是java语句)

①所有代码脚本都会被翻译到_jspService()方法中

②由于代码脚本翻译到_jspService()方法中,所以_jspService()方法中的对象都可以直接使用

③可以由多个代码脚本组合完成一个完整的java语句

④代码脚本可以和表达式脚本一起组合使用

<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    
    <%!
        private String name;
        private int age;
        private static Map map;
    %>
    
    <%!
        public int show(){
            return 1;
        }
    %>
    
    <%!
        static {
            map = new HashMap();
            map.put("key1","value1");
            map.put("key2","value2");
        }
    %>
    
    <%!
        public static class User{
            private String name;
            private int age;
        }
    %>

    <%= 12 %>
<%= 12.13 %>
<%= "字符串" %>
<%= map %>
<%= request.getParameter("username") %>
<% int i = 1; if(i < 5){ System.out.println(i); } %> <% for(int j = 1; j <= 5; j++){ %> <%= j %>
<% } %> <% String username = request.getParameter("username"); System.out.println(username); %>
 二. jsp中的注释

1. html注释:,会被翻译到java源代码中,在_jspService()方法中以out.writer输出到客户端

2. java注释:// 和 ,通常使用在表达式脚本和代码脚本中,会被翻译到java源代码中

3. jsp注释:<%--   %-->,可以注释jsp中的所有代码

三. jsp中的内置对象

jsp的内置对象是指Tomcat在翻译jsp页面成为Servlet源代码后,内部提供的9个对象

1. request:请求对象;2. response:响应对象;3. pageContext:jsp的上下文对象

4. session:会话对象;5. application:ServletContext对象;6. config:ServletConfig对象

7. out:jsp输出流对象;8. page:指向当前jsp的对象;9. exception:异常对象

四. jsp四大域对象

pageContext(PageContextImpl类):当前jsp页面范围内有效

request(HttpServletRequest类):一次请求响应内有效

session(HttpSession类):一次会话内有效

application(ServletContext类):整个web工程范围内有效

参考:https://blog.csdn.net/Archer__13/article/details/123775110

使用的优先顺序:按照从小到大的范围顺序(pageContext --> request --> session --> application) 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    page1.jsp页面
    <%
        pageContext.setAttribute("key1","pageContext");
        request.setAttribute("key2","request");
        session.setAttribute("key3","session");
        application.setAttribute("key4","application");
    %>
    
    pageContext保存作用域的值:<%=pageContext.getAttribute("key1")%>
request保存作用域的值:<%=request.getAttribute("key2")%>
session保存作用域的值:<%=session.getAttribute("key3")%>
application保存作用域的值:<%=application.getAttribute("key4")%>
<% request.getRequestDispatcher("/page2.jsp").forward(request,response); %> <% response.sendRedirect("http://localhost:8080/StudyJSP_war_exploded/page2.jsp"); %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    page2.jsp页面
    pageContext保存作用域的值:<%=pageContext.getAttribute("key1")%>
request保存作用域的值:<%=request.getAttribute("key2")%>
session保存作用域的值:<%=session.getAttribute("key3")%>
application保存作用域的值:<%=application.getAttribute("key4")%>
五. jsp中的out输出和response.getWriter输出的区别

在响应时,首先将out缓冲区的数据追加在response缓冲区的末尾,最后将response缓冲区中的所有数据输出。 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        out.write("out输出1 
"); out.write("out输出2
"); response.getWriter().write("response输出1
"); response.getWriter().write("response输出2
"); %>

out.write()只能输出字符串,out.print()可以输出任意类型的数据(其本质是把数据都转化成字符串类型然后调用write方法输出) 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    <%
        out.write("12");
        out.write(12);     //不会输出
        out.print("12");
        out.print(12);
    %>

六. jsp常用标签

1. jsp静态包含(常用):<%@ include file="要包含的jsp页面路径"%>

    会将要包含的页面的内容执行输出在当前页面,当修改包含页面时,当前页面也会随之变化

    特点:①静态包含不会翻译被包含的jsp页面;②静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    主体内容
<%@ include file="/page.jsp"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    包含的页面

 

2.jsp动态包含:

     动态包含也可以像静态包含一样,把被包含的内容执行输出到包含位置

     特点:①动态包含会把包含的jsp页面翻译成java代码;②动态包含去调用被包含的jsp页面执行输出;③动态包含可以传递参数

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    主体内容
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    包含的页面 
<%=request.getParameter("username")%>

  

3.jsp请求转发:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785408.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号