JSP(全称Java Server Pages)是由Sun公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的WEB网
JSP(全称Java Server Pages)是由Sun公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的WEB网页,然后返回给请求者。简单来说:JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来
它实现了Html语法中可以嵌入java编码的扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠.
事例:使用Servlet向页面动态响应HTML页面资源
根据请求中的参数,动态向浏览器响应对应行数的一个HTML表格
import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * @Author: Ma HaiYang * @Description: MircoMessage:Mark_7001 */@WebServlet("/servlet1.do")public class Servlet1 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { int h = Integer.parseInt(req.getParameter("h")); int l = Integer.parseInt(req.getParameter("l")); StringBuilder sbd=new StringBuilder(); sbd.append("<html lang='en'><head><meta charset='UTF-8'><title>Title</title><style>"); sbd.append("table{border: 1px solid green;width: 50%;margin: 0px auto;}"); sbd.append("table td{border: 1px solid blue;}</style></head><body><table>"); for (int i = 1; i <=h ; i++) { sbd.append("<tr>"); for (int j = 1; j <=l ; j++) { sbd.append("<td>"); sbd.append(String.valueOf(i)); sbd.append(String.valueOf(j)); sbd.append("</td>"); } sbd.append("</tr>"); } sbd.append("</table></body></html>"); // 设置响应内容和编码 resp.setContentType("text/html;charset=UTF-8"); resp.setCharacterEncoding("UTF-8"); // 响应内容给浏览器 PrintWriter writer = resp.getWriter(); writer.print(sbd.toString()); }}请求测试
动态资源: 通过运算而生成的资源 Servlet JSP 静态资源: 每次访问获得的都是不需要现生成的资源 HTML img mp3 mp4 js css ... ...
总结:Servlet作为动态资源,在JAVA代码中通过字符串形式响应数据,通过字符串拼接HTML文档特别繁琐,不利于后期的维护,容易出现问题,如果用于向浏览器响应页面资源操作非常繁琐,且非常不利于页面的更新和维护,所以Servlet不可以作为页面资源,一般专门用接收用户端数据,向用户端响应数据,控制前后端页面跳转,交互逻辑等.在MVC模式下,作为控制层使用