javaweb--JSP内置对象和作用域/JSP、JSTL标签

一、九大内置对象

详细可以点击
分为四大类

  • 输入输出对象:out对象、response对象、request对象
  • 通信控制对象:pageContext对象、session对象、-application对象
  • Servlet对象:page对象、config对象
  • 错误处理对象:exception对象
out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
config(ServletConfig):对应“真身”中的ServletConfig;
page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;
pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;
exception(Throwable):只有在错误页面中可以使用这个对象;
request(HttpServletRequest):即HttpServletRequest类的对象;
response(HttpServletResponse):即HttpServletResponse类的对象;
application(ServletContext):即ServletContext类的对象;
session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

举例:学院注册
reginput.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>学员注册</title>
    <meta name="author" content="dandan的博客">
    <style>
        .txtBox{
            padding: 3px;
            width: 300px;
            font-size: 16px;
        }
    </style>
</head>
<body>
<div align="center">请输入注册信息
    <form name="form1" method="post" action="reginfo.jsp">
        <table border="0" align="center">
            <tr>
                <td>用户姓名:</td>
                <td><input type="text" name="name"  class="txtBox" /></td>
            </tr>
            <tr>
                <td>博客地址:</td>
                <td><input type="text" name="blog"  class="txtBox"/></td>
            </tr>
            <tr>
                <td>备注信息:</td>
                <td><input type="text" name="remark" class="txtBox"/></td>
            </tr>
            <tr>
                <td>兴趣爱好:</td>
                <td>
                    <%--多选框--%>
                    <input type="checkbox" name="interests" value="足球"  />足球
                    <input type="checkbox" name="interests" value="篮球"  />篮球
                    <input type="checkbox" name="interests" value="羽毛球"  />羽毛球
                    <input type="checkbox" name="interests" value="乒乓球"  />乒乓球
                </td>
            </tr>
            <!-- 以下是提交、取消按钮 -->
            <tr>
                <td>
                    <input type="submit" value="提交" />
                </td>
                <td>
                    <input type="reset" value="取消" />
                </td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

reginfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("UTF-8");          //设置请求编码
    String name = request.getParameter("name");     //获取用户名
    String blog = request.getParameter("blog");     //获取博客地址
    String remark = request.getParameter("remark"); //获取备注信息
    //获取兴趣爱好
    String[] interests = request.getParameterValues("interests");
    String interStr = "";
    if(interests != null)
    {
        for(String item : interests)
        {
            interStr += item + ";";
        }
    }
%>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>注册信息</title>
    <meta name="author" content="pan_junbiao的博客">
</head>
<body>
用户姓名:<%= name %><br/>
博客地址:<%= blog %><br/>
备注信息:<%= remark %><br/>
兴趣爱好:<%= interStr %>
</body>
</html>

例子2:登录密码检测
login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录界面</title>
</head>
<body>
<form action="check.jsp" method="post">
    用户名:<input type="text"  name="userName" value="userName" ><br>
    密码:<input type="password" name="password" value="2233"><br>
    <input type="submit" name="submit" value="登录">
</form>

</body>
</html>

check.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/2/11
  Time: 17:58
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--判断密码--%>
<%
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    if(userName.equals("admin")&&password.equals("123456")){
        out.print("恭喜!登录成功");
    }else{
        response.sendRedirect("error.jsp");
    }

%>
</body>
</html>

error.jsp

<%--5s后自动刷新到登录页面--%>
<%
response.setHeader("refresh","5;url=login.jsp");
%>
      用户名或者密码有误,请重新输入!!

二、四大作用域

page里的变量没法从一个jsp跳转到另外的jsp。只能在当前页面。
request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的!request里的变量可以跨越forward前后的两页。
session:客户端向服务器发送请求,产生的数据,用户用完一会还有用,比如:购物车;
application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用,比如:聊天数据;

三、JSP、JSTL标签

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:if> 标签:用于选择语句

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
    <title>c:if 标签实例</title>
</head>
<body>
<c:set var="salary" scope="session" value="${1000}"/>
<c:if test="${salary > 2000}">
<p>我的工资为: <c:out value="${salary}"/><p>
    </c:if>
<c:if test="${salary<2000}">
       <c:out value="工资太低"/>
        </c:if>
</body>
</html>

结果为:工资太低
c:set标签: 保存数据

<c:set var="salary" scope="session" value="${1000}"/>
<c:out value="${salary}"/>

结果为:1000
<c:choose>标签:与Java switch语句的功能一样,用于在众多选项中做出选择。
switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。

<c:set var="salary" scope="session" value="${2000}"/>
 <p> 你的工资为 <c:out value="${salary}"/> </p>
<c:choose>
     <c:when test="${salary<=0}">
         一毛也没有
     </c:when>
     <c:when test="${salary>1000}">
         不错的薪水
     </c:when>
     <c:otherwise>
         一般
     </c:otherwise>
 </c:choose>

注意
项目要导包,建立以下依赖:

<!-- JSTL表达式的依赖 -->
<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
</dependency>
<!-- standard标签库 -->
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值