JSP(JavaServer Pages)
JSP(JavaServer Pages) 是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。
JSP将动态内容嵌入到静态的页面中,实现以静态页面为模板,动态生成部分内容的功能。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码(字节码),也可以直接编译成二进制码。
在Servlet中写html特别麻烦,使用JSP编写会比较方便,tomcat可以自动将其转换为Servlet语言。JSP本质上还是Servlet,只不过是将拼HTML的过程交给了tomcat内部进行操作。有了JSP后,我们可以尽管写html,并可以达到一个动态和静态的结合:一般都用来在静态文件中需要加入一点逻辑的场景。
比如:在jsp中我们可以直接写html:
<html>
<head>
<meta charset="UTF-8">
<title>个人资料修改</title>
</head>
而不用在Servlet中一个一个拼了。
writer.println("<!DOCTYPE html>");
writer.println("<html>");
writer.println("<head>");
writer.println("<meta charset='utf-8'>");
writer.println("<title>个人主页</title>");
writer.println("</head>");
JSP常用标签:
(1)声明标签: <%! 变量或方法声明 %>
声明JSP内所使用的全局变量或方法或内部类。
(2)脚本标签:<% 程序代码 %>
编写java代码,完成逻辑控制。
(3)表达式标签:<%= 表达式 %>
在HTML中嵌入所赋的值,注意不能以分号结尾。
<%@ page import="com.glp.model.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("/login.html");
return;
}
%>
<html>
<head>
<meta charset="UTF-8">
<title>个人资料修改</title>
</head>
<body>
<%! int i = 10; %> //成员变量
<%! public void show(){} %> //成员方法
<form action="/profile/edit" method="post">
<div>
昵称: <input type="text" name="nickname" value="<%= user.nickname %>">
</div>
<div>
个性签名: <input type="text" name="brief" value="<%= user.brief %>">
</div>
<div>
<button type="submit">修改</button>
</div>
</form>
</body>
</html>