JSP学习

本文详细介绍了JSP的基本概念、工作原理,包括其与HTML、Java的结合,以及JSP脚本的不同类别。同时探讨了JSP的缺点和替代方案,如EL表达式和JSTL标签的使用,以及MVC模式在JavaWeb开发中的应用和三层架构设计。
摘要由CSDN通过智能技术生成

一:JSP原理

1.概念:Java Server Pages,Java服务端页面

一种动态的网页技术,其中既可以定义HTML、JS、CSS等静态内容兼容,还可以定义Java代码的动态内容

2.JSP = HTML + Java,用于简化开发的

3.JSP本质上就是一个Servlet

4.JSP在被访问时,由JSP容器(Tomcat)将其转换为Java文件(Servlet),在由JSP容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件

二:JSP脚本

1.JSP脚本用于在JSP页面内定义Java代码

2.JSP脚本分类

①<%...%>:内容会直接放到_jspService()方法之中

②<%=...%>:内容会放到out.print()中,作out.print()的参数

③<%!...%>:内容会放到_jspService()方法之外,被类直接包含

<h1>Hello world</h1>
<%
    System.out.println("你好");
    int i = 3;
%>

<%="你好"%>
<%=i%>

<%!
    void show(){}
    String name = "张三";
%>

三:JSP缺点

由于JSP页面内,既可以定义HTML标签,又可以定义Java代码,造成了以下问题:

1.书写麻烦:特别是复杂的页面

2.阅读麻烦

3.复杂度高:运行需依赖于各种环境,JRE,JSP容器,JavaEE...

4.占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存

5.调试困难:出错后,需要找到自动生成的.java文件进行调试

6.不利于团队协作:前端人员不会Java,后端人员不精通HTML

7.....

四:EL表达式

1.Expression Language 表达式语言,用于简化JSP页面内的Java代码

2.主要功能:获取数据

3.语法:${expression}

:获取域中存储key为brands的数据

4.JavaWeb中的四大域对象:

①page:当前页面有效

②request:当前请求有效

③session:当前会话有效

④application:当前应用有效

el表达式获取数据,会依次从这四个域中中寻找,直到找到为止

@WebServlet("/BrandServlet")
public class BrandServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Brand> brands = new ArrayList<Brand>();
        brands.add(new Brand(1,"三只松鼠","三只松鼠",100,"三只松鼠,好吃不上火",1));
        brands.add(new Brand(2,"优衣库","优衣库",200,"优衣库,服适人生",0));
        brands.add(new Brand(3,"小米","小米科技有限公司",1000,"为发烧而生",1));

        request.setAttribute("brands",brands);

        request.getRequestDispatcher("/el-demo.jsp").forward(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

${brands}

</body>
</html>

五:JSTL标签

1.JSP标签标准库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码

2.JSTL快速入门

3.常用的两个标签

①<c:if>:来完成逻辑判断,替换java if else

②<c:forEach>:相当于for循环

items:被遍历的容器

var:遍历产生的临时变量

varStatus:遍历状态对象

begin:开始数

end:结束数

step:步长

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

<c:if test="${status == 1}">
    启用
</c:if>

<c:if test="${status != 1}">
    禁用
</c:if>

<c:forEach items="${brands}" var="brand">
    <tr align="center">
        <td>${brand.id}</td>
        <td>${brand.brandName}</td>
        <td>${brand.companyName}</td>
        <td>${brand.description}</td>
        <td>${brand.status}</td>
    </tr>
</c:forEach>

<c:forEach begin="1" end="10" step="1" var="i">
    ${i}
</c:forEach>

</body>
</html>

六:MVC模式

1.MVC是一种分层开发的模式,其中:

①M:Model,业务模式,处理业务

②V:View,视图,界面展示

③C:Controller,控制器,处理请求,调用模型和视图

2.MVC好处

①职责单一,互不影响

②有利于分工协作

③有利于组件重用

七:三层架构

1.数据访问层:对数据库的CRUD基本操作

2.业务逻辑层:对业务逻辑进行封装,组合数据访问层层中基本功能,形成复杂的业务逻辑能力

3.表现层:接受请求,封装数据,调用业务逻辑层,响应数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值