静悄悄的黑夜具有母亲的美丽,而吵闹的白天具有孩子的美丽。
The silent night has the beauty of the mother and the clamorous day of the child.
在实际java编程中已经很少用到JSP,老师说我们学习它是主要为了练手,用于练习前面学习的内容。
我们需要准备:
idea,tomcat,java环境。
因为各个版本不一样,请自行搜索教程吧。
搭建Web环境和初识JSP是学习Web开发的重要一步。
所以还是说一下吧,下面是一般步骤:
1. 搭建Web环境
搭建Web环境通常需要以下组件:
- Web服务器(如Apache Tomcat)
- 数据库服务器(如MySQL)
- 开发工具(如Eclipse、IntelliJ IDEA)
具体步骤:
- 下载并安装Apache Tomcat:从官方网站下载Tomcat,并按照官方文档进行安装配置。
- 下载并安装MySQL:从官方网站下载MySQL,并按照官方文档进行安装配置。
- 下载并安装开发工具:根据个人喜好选择合适的开发工具,如Eclipse或IntelliJ IDEA。
2. 初识JSP(JavaServer Pages)
JSP是一种用于开发动态Web页面的,通常运行在服务器端的Java技术。它允许在HTML页面中嵌入Java代码,用于生成动态内容。
一些基本概念:
- JSP页面的文件扩展名为
.jsp
。 - 在JSP页面中,可以使用HTML标签和JSP元素。
- JSP页面中的Java代码需要包含在
<% %>
标记内。 - JSP页面可以通过表达式、脚本和声明来编写动态内容。
示例:
假设你已经搭建了Web环境,可以尝试以下步骤来创建一个简单的JSP页面:
- 在Tomcat的webapps目录下创建一个新的文件夹,比如
mywebapp
。 - 在
mywebapp
文件夹下创建一个名为index.jsp
的文件。 - 编辑
index.jsp
文件,输入以下内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>My First JSP Page</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>Today is <%= new java.util.Date() %></p>
</body>
</html>
- 启动Tomcat服务器,在浏览器中访问
http://localhost:8080/mywebapp/index.jsp
,应该可以看到页面显示“Hello, World!”以及当前日期时间。
这只是一个简单的示例,JSP还有很多功能和用法,包括使用JavaBean、标签库等。建议查阅更多的JSP教程和文档以深入了解JSP的使用。
JSP里的page指令
在JSP(JavaServer Pages)中,<%@ page %>
指令用于设置页面的各种属性,实现与JSP容器的通信。这个指令通常位于JSP页面的开头,用于指定页面的一些特性和属性。以下是一些常见的<%@ page %>
指令的属性:
-
language
属性: 指定在JSP页面中使用的脚本语言,通常为Java。例如:<%@ page language="java" %>
-
contentType
属性: 指定响应的内容类型及字符编码。例如:<%@ page contentType="text/html; charset=UTF-8" %>
-
import
属性: 用于导入Java类。可以导入多个类,用逗号分隔。例如:<%@ page import="java.util.*, java.io.*" %>
-
session
属性: 指定是否启用会话管理。可以设置为true
或false
。例如:<%@ page session="false" %>
-
errorPage
属性: 指定在页面发生错误时跳转的错误页面。例如:<%@ page errorPage="error.jsp" %>
-
isErrorPage
属性: 指定当前页面是否为错误页面,可以设置为true
或false
。如果设置为true
,则可以使用exception
对象来访问异常信息。例如:<%@ page isErrorPage="true" %>
-
buffer
属性: 指定输出缓冲区的大小。例如:<%@ page buffer="8kb" %>
![](https://i-blog.csdnimg.cn/blog_migrate/4b2840ad64d12fb0e28898be0c6a7d43.webp?x-image-process=image/format,png)
这些是一些常见的<%@ page %>
指令属性,通过设置这些属性,可以控制页面的行为和特性,以实现更灵活和高效的JSP页面开发。
使用JSP实现输出
在JSP页面中,有几种方式可以实现输出内容到页面上。以下是一些常用的方式:
-
使用
<%= %>
输出表达式:<% String title = "谈北京精神"; %> <%= title %>
在这个例子中,
<%= title %>
会输出变量title
的值,自动进行HTML转义,防止XSS攻击。 -
使用
<% out.print(); %>
输出:<% out.print("谈\"北京精神\""); %>
在这个例子中,
out.print()
会将指定的内容输出到页面上。需要手动处理转义字符。 -
使用
<c:out>
标签输出:
如果使用了JSTL(JSP标准标签库),可以使用<c:out>
标签来输出内容,并且可以指定是否进行HTML转义。<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <% String title = "谈北京精神"; %> <c:out value="${title}" escapeXml="true" />
在JSP页面中使用<% out.print(); %>
或<% out.println(); %>
这样的做法存在以下一些潜在的弊端:
-
可读性差: 在JSP页面中频繁使用Java代码块会使页面代码变得混乱,降低可读性和维护性。这种方式可能会使页面难以理解,尤其对于那些不熟悉Java语法的前端开发人员来说。
-
耦合度高: 将业务逻辑和显示逻辑混合在一起会增加代码的耦合度,使代码难以重用和测试。这违反了良好的设计原则,如分离关注点和单一职责原则。
-
不利于前端开发: 前端开发人员可能不熟悉Java语法,因此在JSP页面中大量使用Java代码块会使他们难以理解和修改页面。这可能导致团队协作困难。
-
安全性风险: 直接在JSP页面中输出内容时,需要确保输出的内容没有潜在的安全漏洞,比如跨站脚本(XSS)攻击。使用
out.print()
或out.println()
时,需要确保输出的内容经过适当的转义,以防止恶意脚本的注入。
综上所述,虽然在一些简单的情况下使用out.print()
或out.println()
可能是方便的,但在复杂的应用中,最好遵循更好的设计原则,如使用JSTL标签库或者MVC架构来分离业务逻辑和显示逻辑,以提高代码的可维护性和可读性。
这些方式都可以用来在JSP页面中输出内容,但要注意在输出内容时要考虑安全性,特别是防止跨站脚本(XSS)攻击。根据具体的需求和情况选择合适的输出方式。
JSP里的out
JSP中的out对象是一个内置对象,它是 JspWriter
类的一个实例,用于向响应输出流中写入内容。它可以通过out.print()、out.println()等方法来实现输出。下面是一些常用的out对象的方法:
- out.print():输出指定内容到页面上。
- out.println():输出指定内容到页面上,并在输出内容的末尾添加一个换行符。
- out.write():将指定内容直接写入输出流中,不做任何处理。
- out.flush():刷新输出流,将缓冲区中的内容立即输出到页面上。
- out.clear():清除输出缓冲区中的内容。
- out.close():关闭输出流。
可以通过在JSP页面中使用out对象的方法来输出动态内容或者将变量的值输出到页面上。例如:
<%
String name = "World";
out.println("Hello " + name);
%>
输出结果为:Hello World
out
对象通常用于将文本、HTML 或其他数据发送到客户端浏览器。以下是一些常见的用法:
![](https://i-blog.csdnimg.cn/blog_migrate/a9a2cf01a1fbe7578bf3a9a6f5748f97.webp?x-image-process=image/format,png)
-
输出文本: 可以使用
out.print()
或out.println()
方法将文本输出到客户端。例如:<% out.print("Hello, World!"); out.println("Welcome to our website!"); %>
-
输出变量: 可以输出变量的值到客户端。例如:
<% String name = "Alice"; out.print("Hello, " + name); %>
-
HTML 输出: 可以输出 HTML 标记到客户端,用于构建页面结构。例如:
<% out.println("<h1>Welcome to our website</h1>"); %>
-
转义输出: 为了防止跨站脚本攻击(XSS),应当对用户输入进行转义输出。可以使用
out.print()
方法结合escapeXml()
方法来实现转义输出。例如:<% String userInput = "<script>alert('XSS attack');</script>"; out.print("<p>" + org.apache.commons.lang.StringEscapeUtils.escapeXml(userInput) + "</p>"); %>
总的来说,out
对象在 JSP 中是一个重要的工具,用于向客户端输出内容,构建动态页面并与用户交互。在使用时,应注意安全性问题,避免潜在的安全漏洞。