Web编程基础(2)之jsp语法和内置对象

JSP的学习

需要学习的已经罗列的如下:
在这里插入图片描述

1.三大指令的学习

指令语法:<%@ 指令名 属性名=值%>

1.page:配置jsp页面的相关属性
  1. contentType=“text/html;charset=UTF-8” 响应编码

  2. language=“java” 支持的语言(jsp起初想支持多种语言)

  3. pageEncoding=“utf-8” 页面的编码

  4. imput=包名 java中的导包

  5. buffer=“8kb” java中设置缓冲区的大小

  6. autoflush=“true” 是否自动刷新

  7. errorPage=“index.jsp” 当本页面出现错误时,为保证用户体验,让用户跳转到指定的错误的显示页面(找不到喽)

  8. isErrorPage=“true” 这个意思是本页面为错误页面,只有标注了这个属性才可以使用页面内的内置对象exception对象
    报了5系列错误的页面的jsp:

    <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" errorPage="errorpage.jsp" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <%--设置异常--%>
        <%System.out.println(1/0);%>
      </body>
    </html>
    

    提示页面的jsp:

    <%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    喔喔怎么找不到了
    <%=exception%>
    </body>
    </html>
    

统一配置错误页面(当编写的jsp页面出现问题时都会跳转到友好提示页面)

在web.xml中配置:

    <error-page>
        <!--当jsp页面出现500错误时,都跳转到errorpage这个页面-->
        <error-code>500</error-code>
        <location>/errorpage.jsp</location>
    </error-page>

配置之后,就不需要在jsp页面下设置page属性

2.include:静态包含

静态:当jsp编译成java类后使用的静态的方法

在页面设计时,如果多个页面的头部和底部的模式是相同的,那么只需要换中间的内容,就可以使用这个页面属性:

头部和底部内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        <h1>头部内容</h1>
        <%--使用指令--%>
        <%@include file="include.jsp"%>
        <h1>底部内容</h1>
</body>
</html>

中间内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>中间内容</h1>
</body>
</html>

结果:

头部内容
中间内容
底部内容
3.taglib导入第三方的标签库(经常使用的c标签)

这种导入标签的存在是为了简化脚本

2.六个动作标签(常用)

动作标签的出现是为了替代jsp的脚本

1.jsp:bean、jsp:getProperty、jsp:setProperty

创建对象,并对对象进行的设置和提取操作

代码展示:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.g.Demo.User" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--jsp原始脚本--%>
    <%
        User user = new User("zhangsan", "123456");
        String password = user.getPassword();
        String username = user.getUsername();
        out.write(username);
        out.write(password);
    %>
<hr>
<%--使用jsp内置对象--%>
<jsp:useBean id="u" class="com.g.Demo.User"></jsp:useBean>
<jsp:setProperty name="u" property="username" value="lisi"></jsp:setProperty>
<jsp:setProperty name="u" property="password" value="123456"></jsp:setProperty>
<jsp:getProperty name="u" property="username"></jsp:getProperty>
<jsp:getProperty name="u" property="password"></jsp:getProperty>
</body>
</html>

结果:

zhangsan123456
lisi 123456
2.jsp:include 动态包含
<jsp:include page="include.jsp"></jsp:include>

与page指令中的区别:生成的java类中的变量不同,非静态

3.jsp:forward 和 jsp:parm内部转发标签
<%--原始jsp脚本--%>
    <%
    //request.getRequestDispatcher("/WEB-INF/home.jsp").forward(request,response);
    %>
<%--jsp内置对象--%>
    <jsp:forward page="WEB-INF/home.jsp"></jsp:forward>

注意:获取web-inf目录下的文件,不可以重定向,只能内部转发,并且在使用jsp的内部对象时,路径的填写需要注意WEB-INF前面的斜杠不需要写

在转发的过程中的传递参数,例如请求服务器上的servlet并且在servlet获取转发带过来的值

jsp页面:

<%--jsp内置对象跳转请求servlet并存放参数--%>
    <jsp:forward page="/jspdemo">
        <jsp:param name="username" value="zhangsan"></jsp:param>
        <jsp:param name="password" value="123456"></jsp:param>
    </jsp:forward>

服务器的servlet:

@WebServlet(name = "jspServlet",value = "/jspdemo")
public class jspServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username+"  "+password);
        response.getWriter().write(username+"  "+password);
}

3.九个jsp的内置对象

原理:当jsp页面转换成servlet类时,服务器已经将9个对象初始化好了,传给了Service方法,调用直接使用。

1.四个域对象
域的名称范围jsp页面上的表示
servletcontext 全局域对象代表整个web的项目application对象
session域浏览器服务器之间的一次会话session对象
request域代表范围内的一次请求和响应request对象
pagecontext页面域在页面中的一次操作pagecontext对象
2.config 配置对象
3.page页面对象>>this
4.out输出对象
5.reponse响应对象
6.exception对象(前提page iserrorpage=“true”)

注意:pagecontext页面域可以取出其他的8个对象
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值