JavaWeb之JSP(1)

刺骨的言语ヽ痛彻心扉 2022-02-02 13:43 341阅读 0赞

JSP的应用

编写一个JSP应用,完成动态的展示欢迎信息。

  • 基于Maven工具创建一个JavaWeb项目
  • 编写一个index.jsp页面,输出欢迎信息

JSP的简介

JSP全名为:Java Server Pages,其根本是一个简化的Servlet设计,实现了在Java中使用HTML标签。JSP是一种动态网页技术标准,同时也是JavaEE标准。JSP与Servlet一样,是在服务器端执行的。

常见动态网页开发技术对比:

  • JSP: Java平台,安全性高,适合开发大型的,企业级的Web应用程序
  • Asp.net: .Net平台,简单易学。但是安全性以及跨平台性差
  • PHP: 简单,高效,成本低开发周期短,特别适合中小型企业的Web应用开发

JSP的页面元素

JSP页面元素构成如下图所示:
在这里插入图片描述
JSP指令有如下三种:

  1. page指令:通常位于JSP页面的顶端,同一个页面可以有多个page指令。
  2. include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。
  3. taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
JSP脚本指的就是在JSP页面中执行的java代码。

语法:<% Java代码 %>

在<% Java代码 %> 这一标签内的可执行java代码我们就称之为是JSP脚本。

JSP声明指的就是在JSP页面中定义变量或者方法

语法:<%! Java代码 %>

  1. <%!
  2. String s = "yuisama";
  3. int add(int x, int y) {
  4. return x + y;
  5. }
  6. %>
  7. <%
  8. out.println(s);
  9. out.println(add(3, 4));
  10. %>
JSP表达式

在JSP页面中执行的表达式

语法:<% =表达式 %>

  1. <%!
  2. String s = "yuisama";
  3. int add(int x, int y) {
  4. return x + y;
  5. }
  6. %>
  7. <br>
  8. Hello,<%= s%> <br>
  9. x+y=<%= add(10,20)%> <br>
JSP生命周期

在这里插入图片描述

jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量以及相应时间,但也要注意多线程带来的同步问题。由于该Servlet常驻于内存,所以响应非常快。

JSP页面只要发生修改,那么JSP引擎都会把源文件重新编译,生成最新的字节码文件。
备注:查看Tomcat的安装目录的work目录中JSP编译后的源代码

范例:使用表达式实现输出九九乘法表
  1. <%@page contentType="text/html; charset=utf-8" %>
  2. <html>
  3. <body>
  4. <%!
  5. String printMathTable() {
  6. String result = "";
  7. for (int i = 1; i <=9; i++) {
  8. for (int j = 1; j <=i ; j++) {
  9. result+=i+"*"+j+"="+(i*j)+" ";
  10. }
  11. result+="<br>";
  12. }
  13. return result;
  14. }
  15. %>
  16. <h1>九九乘法表</h1>
  17. <hr>
  18. <!-- 使用表达式调用声明的方法 -->
  19. <%=printMathTable()%>
  20. </body>
  21. </html>
范例:使用脚本实现输出九九乘法表
  1. <%@page contentType="text/html; charset=utf-8" %>
  2. <html>
  3. <body>
  4. <%!
  5. void printMathTable(JspWriter out) throws Exception{
  6. for (int i = 1; i <=9; i++) {
  7. for (int j = 1; j <=i ; j++) {
  8. out.println(i+"*"+j+"="+(i*j)+" ");
  9. }
  10. out.println("<br>");
  11. }
  12. }
  13. %>
  14. <h1>九九乘法表</h1>
  15. <hr>
  16. <%
  17. // 使用脚本调用声明的方法
  18. printMathTable(out);
  19. %>
  20. </body>
  21. </html>

JSP内置对象

JSP内置对象是Web容器创建的一组对象,不使用关键字new就可以使用的对象,我们称之为内置对象。
JSP九大内置对象:
在这里插入图片描述

get与post的区别

表单有两种提交方式:get和post
1、get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性较低但效率比post方式高。适合提交数据量不大、安全性不高的属性。比如搜索、查询等功能。
2、post:将用户提交的信息封装在HTTP Body内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传等功能。
代码示例

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>login</title>
  5. </head>
  6. <body>
  7. <h1>用户登录</h1>
  8. <hr>
  9. <form action="dologin.jsp" name="loginForm" method="get">
  10. <table>
  11. <tr>
  12. <td>用户名:</td>
  13. <td><input type="text" name="userName"></td>
  14. </tr>
  15. <tr>
  16. <td>密码:</td>
  17. <td><input type="password" name="password"></td>
  18. </tr>
  19. <tr>
  20. <td colspan="2"><input type="submit" value="登录"></td>
  21. </tr>
  22. </table>
  23. </form>
  24. </body>
  25. </html>

发表评论

表情:
评论列表 (有 0 条评论,341人围观)

还没有评论,来说两句吧...

相关阅读