JSP学习经验小结分享

JSP学习经验小结分享

本文将分享我学习JSP(JavaServer Pages)的经验,并提供一些示例说明。JSP是一种基于Java的Web开发技术,可以帮助我们创建可重用、动态的Web页面。

学习前的准备工作

在学习JSP之前,需要了解以下基本知识:

  1. HTML和CSS:JSP页面是基于HTML和CSS构建的,因此需要了解这些技术;
  2. Java基础:JSP技术本身就是基于Java的,因此必须了解Java基础知识,如语法、面向对象等;
  3. Servlet:JSP页面通常和Servlet一起使用,因此也需要了解Servlet的基础知识。

开始学习JSP

学习JSP的第一步是安装正确的开发环境,一般包括以下几个步骤:

  1. 安装Java开发工具包(JDK);
  2. 安装Servlet容器,如Tomcat、Jetty等;
  3. 安装JSP编辑器或集成开发环境(IDE),如Eclipse、IntelliJ IDEA等。

学习JSP的过程可以分为以下几个步骤:

  1. JSP基础语法:了解JSP页面的基本结构、数据类型、表达式、脚本等。以下是示例代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP示例</title>
</head>
<body>
<%
    String name = "张三";
    out.println("姓名:" + name);
%>
</body>
</html>

在JSP页面中,使用<% %>来插入Java代码,使用<%= %>来输出Java表达式的结果。

  1. JSP标准动作:了解JSP标准动作,如<jsp:include><jsp:forward><jsp:useBean>等。以下是示例代码:
<jsp:include page="header.jsp" />
<jsp:useBean id="user" class="com.example.User" scope="session" />
<p>欢迎您,<%= user.getName() %>!</p>
<jsp:forward page="footer.jsp" />

这些标准动作可以帮助我们创建可重用的页面部分,并在不同的页面中引用它们。

  1. JSP自定义标签:了解如何编写和引用JSP自定义标签。以下是示例代码:
<%@taglib prefix="my" uri="http://example.com/mytags" %>
<my:hello name="张三" />

在JSP页面中可以使用自定义标签来封装特定的功能,如表单验证、分页等。

  1. JSTL和EL:掌握JSTL和EL(表达式语言)的使用。以下是示例代码:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<p>随机数:${fn:random()}</p>
<c:forEach items="${users}" var="user">
    <p>${user.name}</p>
</c:forEach>

JSTL(JavaServer Pages Standard Tag Library)和EL提供了很多实用的标签和表达式,可以简化JSP页面的开发。

总结

学习JSP需要掌握基础知识、安装开发环境,学习JSP基础语法、JSP标准动作、JSP自定义标签、JSTL和EL等。以上是JSP学习经验小结分享,希望对大家有所帮助。

示例1:使用JSP实现简单的登录验证

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<%
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    if ("admin".equals(userName) && "password".equals(password)) {
        session.setAttribute("userName", userName);
        response.sendRedirect("welcome.jsp");
    } else {
        out.println("用户名或密码不正确");
    }
%>
<form method="post" action="login.jsp">
    <label>用户名:</label>
    <input type="text" name="userName"><br>
    <label>密码:</label>
    <input type="password" name="password"><br>
    <button type="submit">登录</button>
</form>
</body>
</html>

示例2:使用JSTL和EL实现查询和分页功能

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<form method="get" action="userList.jsp">
    <label>关键字:</label>
    <input type="text" name="keyword" value="${param.keyword}"><br>
    <button type="submit">查询</button>
</form>
<c:if test="${not empty errorMsg}">
    <p style="color: red">${errorMsg}</p>
</c:if>
<table>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>性别</th>
    </tr>
    <c:forEach items="${userList}" var="user">
        <tr>
            <td>${user.id}</td>
            <td>${user.name}</td>
            <td>${user.sex eq 'M' ? '男' : '女'}</td>
        </tr>
    </c:forEach>
</table>
<c:if test="${pageCount gt 1}">
    <div>
        <c:if test="${page gt 1}">
            <a href="userList.jsp?page=${page-1}&amp;keyword=${param.keyword}">上一页</a>
        </c:if>
        <c:choose>
            <c:when test="${page lt 5}">
                <c:set var="begin" value="1" />
                <c:set var="end" value="${pageCount lt 10 ? pageCount : 10}" />
            </c:when>
            <c:when test="${page lt pageCount - 4}">
                <c:set var="begin" value="${page-4}" />
                <c:set var="end" value="${page+5}" />
            </c:when>
            <c:otherwise>
                <c:set var="begin" value="${pageCount-9}" />
                <c:set var="end" value="${pageCount}" />
            </c:otherwise>
        </c:choose>
        <c:forEach begin="${begin}" end="${end}" var="i">
            <c:choose>
                <c:when test="${i eq page}">
                    <strong>${i}</strong>
                </c:when>
                <c:otherwise>
                    <a href="userList.jsp?page=${i}&amp;keyword=${param.keyword}">${i}</a>
                </c:otherwise>
            </c:choose>
        </c:forEach>
        <c:if test="${page lt pageCount}">
            <a href="userList.jsp?page=${page+1}&amp;keyword=${param.keyword}">下一页</a>
        </c:if>
    </div>
</c:if>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP学习经验小结分享 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Spring Batch 如何自定义ItemReader

    下面就来详细讲解 Spring Batch 如何自定义ItemReader 的完整攻略。 什么是 ItemReader 在 Spring Batch 中,ItemReader 是读取数据的一个接口。它的作用是读取数据到 Step 的 ExecutionContext 中,然后由 Step 处理数据。 Spring Batch 中已经提供了多种类型的 Item…

    Java 2023年6月16日
    00
  • 全面解析Spring Security 过滤器链的机制和特性

    全面解析Spring Security 过滤器链的机制和特性 什么是Spring Security过滤器链? Spring Security过滤器链是Spring Security处理HTTP请求的核心组件之一。在Spring Security框架中,每一个安全的URL请求都需要通过一系列的过滤器组成的过滤器链来进行权限的校验和身份认证,该过滤器链是有顺序的…

    Java 2023年5月20日
    00
  • java使用socket实现一个多线程web服务器的方法

    使用Java实现一个多线程的Web服务器主要包括以下几步: 1.创建一个ServerSocket对象: 该对象可以监听来自客户端的请求,并将其传递给服务器。 示例代码: ServerSocket serverSocket = new ServerSocket(8080); 2.使用ServerSocket来接受客户端的连接: 服务器监听一个端口,并等待客户端…

    Java 2023年5月18日
    00
  • SpringBoot3集成SLF4J+logback进行日志记录的实现

    下面就为大家讲解一下“SpringBoot3集成SLF4J+logback进行日志记录的实现”的完整攻略。 1. 引入相关依赖 在SpringBoot的pom.xml文件中添加SLF4J和logback的依赖: <dependency> <groupId>org.springframework.boot</groupId>…

    Java 2023年5月26日
    00
  • java通过MySQL驱动拦截器实现执行sql耗时计算

    首先让我解释一下MySQL驱动拦截器。MySQL驱动拦截器是通过JDBC驱动程序提供的一种扩展机制,以拦截JDBC API调用,从而可以在执行JDBC操作之前和之后添加自定义逻辑。使用MySQL驱动拦截器,我们可以实现一些非常有用的功能,例如,计算SQL执行时间、SQL量级统计、检测SQL注入等。 接下来,我将详细描述如何使用Java和MySQL驱动拦截器来…

    Java 2023年5月20日
    00
  • Java Apache Commons报错“ZipException”的原因与解决方法

    “ZipException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 压缩文件错误:如果压缩文件存在错误,则可能会出现此异常。例如,可能会使用错误的压缩文件格式或压缩文件已损坏。 文件路径错误:如果文件路径错误,则可能会出现此异常。例如,可能会使用错误的文件路径或文件不存在。 以下是两个实例: 例1 如果压缩文件存在…

    Java 2023年5月5日
    00
  • spring data jpa 查询自定义字段,转换为自定义实体方式

    下面是详细的“spring data jpa 查询自定义字段,转换为自定义实体方式”的攻略, 自定义实体类的创建 首先,我们需要手动创建一个自定义实体类来存储查询结果: public class CustomEntity { private Long id; private String name; public CustomEntity(Long id, …

    Java 2023年5月20日
    00
  • JQuery ztree 异步加载实例讲解

    JQuery ztree 异步加载实例讲解 什么是ztree ztree是基于JQuery封装的一款快速、简洁的前端Javascript树形插件。其具有简单易用、功能强大、兼容性好等特点,在众多的前端树形插件中有着广泛的应用。 ztree异步加载的目的 在处理较大数据集合时,直接获取全部数据即使是在客户端也会产生较大的冗余和访问压力。而ztree的异步加载机…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部