Web阶段:第十二章:JSP动态页面(上)

简介: Web阶段:第十二章:JSP动态页面

作者:java_wxid

1.什么是Jsp?

jsp是java server page,java的服务器页面。

2.为什么要学习jsp技术

因为jsp技术可以很好的解决在Servlet程序中回传数据是html内容,这个问题。

在Servlet程序中回传html数据,为什么是个问题?

public class PrintHtml extends HttpServlet {
  private static final long serialVersionUID = 1L;    
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    // 解决响应乱码
    response.setContentType("text/html; charset=UTF-8");        
    // 回传一个html页面的数据
    PrintWriter writer = response.getWriter();
    writer.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
    writer.write("<html>\r\n");
    writer.write("  <head>\r\n");
    writer.write("    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
    writer.write("    <title>Insert title here</title>\r\n");
    writer.write("  </head>\r\n");
    writer.write("  <body>\r\n");
    writer.write("    这是hello的html页面\r\n");
    writer.write("  </body>\r\n");
    writer.write("</html>");
  }
}

可以看到创建一个html页面非常繁琐

3.如何创建一个jsp动态页面。

4.如何修改jsp页面的默认编码?

小结:

html和jsp一样。都在放在webContent目录下

WebContent

a.html =====>>>> http://ip:port/工程名/a.html

b.jsp =====>>>> http://ip:port/工程名/b.jsp

5.jsp的本质是什么。

jsp本质上,也是一个Servlet程序。

当我们第一次访问jsp页面的时候,Tomcat服务器会把jsp翻译成为java源文件,然后保存到Tomcat服务器的work目录下。

双击Tomcat v7.0 Server at localhost [Started ,Synchronized],弹出如下窗口

jsp生成的class文件和java源文件

我们打开a_jsp.java源文件,不难发现生成的这个类继承了HttpJspBase类。

然后我们再通过查看源代码发现,HttpJspBase又继承了HttpServlet程序。所以生成的类本质上也是一个Servlet程序。

jsp翻译成为Servlet源文件,全名规则(了解大概):

a.jsp 翻译之后命名的全名为:a_jsp.java

b.jsp 翻译之后命名的全名为:b_jsp.java

源文件名.jsp 翻译之后是: 源文件名_jsp.java

6.jsp的三种语法

a)jsp头部的page指令

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

i.language属性 值只能是java。表示jsp翻译之后是java源文件。

ii.contentType属性 返回的内容类型。response.setContentType的参数值。

iii.pageEncoding属性 是当前jsp页面的字符集

iv.import属性 可以在jsp页面中导入需要的包和类。

v.autoFlush属性 设置jsp中的out输出流是否自动刷新 默认是true(一般都不会修改自动刷新为false),

当jsp中out输出流的缓冲区满了之后,就会自动刷新。

vi.buffer属性 设置jsp中的out输出流的缓冲区大小。默认是8kb

vii.errorPage属性 设置当jsp运行时出错,就自动跳转的页面。

viii.isErrorPage属性 设置当前jsp是否是错误页面,默认是false,表示不启动异常对象。设置为true,可以启用Exception异常对象

ix.session 属性 设置访问jsp的时候,是否创建Session会话对象。默认是true.

x.extends 属性 extends继承属性是预留给服务器厂商使用的。(基本都不会动)

b)jsp中的三种脚本

i.声明脚本(几乎不用)

声明脚本的格式: <%! 声明代码 %>

声明脚本可以声明在类的内部定义的代码。

1.我们可以定义全局变量。

2.定义static静态代码块

3.定义方法

4.定义内部类

测试代码:

  <body>
<!-- 1.我们可以定义全局变量。 -->
    <%! 
      int i = 0;
      private static Map<String,Object> map = new HashMap<String,Object>();
    %>
<!-- 2.定义static静态代码块 -->
    <%!
      static {
        map.put("key1", "value1");
        map.put("key2", "value2");
        map.put("key3", "value3");
      }
    %>
<!-- 3.定义方法 -->
    <%!
      public void abc(){
        System.out.println("国哥真帅!");
      }
    %>
<!-- 4.定义内部类 -->
    <%!
      private static class A {
        private String name;
      }
    %>
  </body>

ii.表达式脚本

表达式脚本的格式:<%=表达式 %>

表达式脚本可以在jsp页面中输出数据。

表达式脚本都会被翻译到_jspService方法中

表达式脚本翻译之后都是out.print进行输出

表达式脚本中的表达式不能以分号结尾

由于表达式脚本翻译之后都在_jspService方法中,所以在_jspService方法中的对象都可以在表达式脚本中直接使用。

1.输出整型

2.输出浮点型

3.输出字符串

4.输出对象

相关文章
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
4月前
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
119 2
|
4月前
|
Java 应用服务中间件 开发工具
如何使用IDEA创建JSP页面
如何使用IDEA创建JSP页面
310 0
html,web页面朗读文字,朗读中文,朗读英文
html,web页面朗读文字,朗读中文,朗读英文
|
5月前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
5月前
|
存储
在 Web 中判断页面是不是刷新
【9月更文挑战第10天】在Web开发中,判断页面是否刷新有多种方法:1) 监听`popstate`事件,检测用户是否通过历史记录访问页面;2) 记录并比较页面加载时间戳,若相差极小,则可能为刷新;3) 利用本地存储设置特定值,若该值不存在或不符合预期,则页面可能被刷新。然而,这些方法并非绝对准确。
295 3
|
6月前
|
数据处理 开发者 UED
FastAPI 的模板引擎简直太神奇啦!这就是构建动态 Web 页面的终极秘籍,快来一探究竟!
【8月更文挑战第31天】FastAPI 是一款高性能异步 Web 框架,可通过集成模板引擎(如 Jinja2 或 Mako)实现动态页面渲染。使用模板引擎可分离页面结构与数据,简化代码并提升可维护性。此外,它还提供丰富的语法支持,如循环和条件判断,从而增强页面展示效果及开发效率。通过简单的配置步骤,即可在 FastAPI 中启用模板引擎,显著改善用户体验。
576 1
|
6月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
142 0
|
6月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
58 1
|
6月前
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)
【Azure 应用服务】Web.config中设置域名访问限制,IP地址限制访问特定的页面资源 (Rewrite)

热门文章

最新文章

  • 1
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    23
  • 2
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    19
  • 3
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 4
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    326
  • 5
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 6
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    39
  • 7
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 8
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    20
  • 9
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    53
  • 10
    springSecurity学习之springSecurity过滤web请求
    60