本文将分享我学习JSP(JavaServer Pages)的经验,并提供一些示例说明。JSP是一种基于Java的Web开发技术,可以帮助我们创建可重用、动态的Web页面。
JSP学习经验小结分享
本文将分享我学习JSP(JavaServer Pages)的经验,并提供一些示例说明。JSP是一种基于Java的Web开发技术,可以帮助我们创建可重用、动态的Web页面。
学习前的准备工作
在学习JSP之前,需要了解以下基本知识:
- HTML和CSS:JSP页面是基于HTML和CSS构建的,因此需要了解这些技术;
- Java基础:JSP技术本身就是基于Java的,因此必须了解Java基础知识,如语法、面向对象等;
- Servlet:JSP页面通常和Servlet一起使用,因此也需要了解Servlet的基础知识。
开始学习JSP
学习JSP的第一步是安装正确的开发环境,一般包括以下几个步骤:
- 安装Java开发工具包(JDK);
- 安装Servlet容器,如Tomcat、Jetty等;
- 安装JSP编辑器或集成开发环境(IDE),如Eclipse、IntelliJ IDEA等。
学习JSP的过程可以分为以下几个步骤:
- 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表达式的结果。
- 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" />
这些标准动作可以帮助我们创建可重用的页面部分,并在不同的页面中引用它们。
- JSP自定义标签:了解如何编写和引用JSP自定义标签。以下是示例代码:
<%@taglib prefix="my" uri="http://example.com/mytags" %>
<my:hello name="张三" />
在JSP页面中可以使用自定义标签来封装特定的功能,如表单验证、分页等。
- 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}&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}&keyword=${param.keyword}">${i}</a>
</c:otherwise>
</c:choose>
</c:forEach>
<c:if test="${page lt pageCount}">
<a href="userList.jsp?page=${page+1}&keyword=${param.keyword}">下一页</a>
</c:if>
</div>
</c:if>
</body>
</html>
本文标题为:JSP学习经验小结分享
基础教程推荐
- java – 是否可以在sql server上使用jdbc获取查询计划? 2023-11-10
- Java向上转型和向下转型的区别说明 2022-12-16
- Struts2中实现web应用的初始化实例详解 2023-08-01
- SpringBoot 过滤器 Filter使用实例详解 2023-06-06
- 剖析Spring WebFlux反应式编程设计及工作原理 2022-11-05
- Java中String.split()的最详细源码解读及注意事项 2023-03-21
- Java Mybatis的初始化之Mapper.xml映射文件的详解 2023-04-17
- SpringBoot项目配置明文密码泄露问题的处理方式 2023-01-13
- 详解SpringMVC的两种实现方式 2023-06-17
- java8中的lambda表达式简介 2023-01-29