• javaweb JSP技术(七)


    一、JSP概述

    1.1 什么是JSP

    JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。

    JSP全名是Java Server Page,它是建立在Servlet规范之上的动态网页开发技术。

    在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。为了与普通HTML有所区别,JSP文件的扩展名为 .jsp

    JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。

    在jsp文件中,使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

     注意:HTML和JSP注释的区别:

    例如:

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    5. %>
    6. <%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
    7. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    8. <html>
    9. <head>
    10. <title>我的jsp页面title>
    11. head>
    12. <body>
    13. This is my JSP page.
    14. <%
    15. Date date = new Date();
    16. out.print(date.toString());
    17. %>
    18. <br>
    19. body>
    20. html>

    1.2JSP 运行原理

    JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。

    JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。

    Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。

     在Tomcat服务器的web.xmlD:\apache-tomcat-7.0.27\conf\web.xml)文件中实现了JSP的相关配置:

     Tomcat中的JSP引擎就是这个Servlet程序,该Servlet程序实现了对所有JSP页面的解析。

    JSP文件也可以像Servlet程序一样,在web.xml文件中进行注册和映射虚拟路径。

    注册JSP页面的方式与Servlet类似,只需将元素修改为<jsp-file>元素即可。

    1. <servlet>
    2. <servlet-name>FirstServletservlet-name>
    3. <jsp-file>/index.jspjsp-file>
    4. servlet>
    5. <servlet-mapping>
    6. <servlet-name>FirstServletservlet-name>
    7. <url-pattern>/diaoloveurl-pattern>
    8. servlet-mapping>

     通过映射虚拟路径也可以访问index.jsp文件

    1.3 jsp页面页面组成

       在传统的HTML页面文件中加入Java程序片和JSP标签,就构成了一个JSP页面

    JSP页面可由5种元素组合而成:

    普通的HTML标记符;

    ② JSP标记,如指令标记、动作标记;

    变量和方法的声明;

    ④ Java程序片;

    ⑤ Java表达式

    1.3 JSP的执行过程

    Jsp的本质是servlet, 通过response的printWriter返回,response的getOutputStream只能调用一次,返回流就不能返回页面刷新

    JSP的执行过程主要可以分为以下几点:

    客户端发出请求。

    Web容器将JSP转译成Servlet源代码。

    Web容器将产生的源代码进行编译。

    Web容器加载编译后的代码并执行。

    把执行结果响应至客户端。

    二、JSP页面中使用HTML标记

    JSP页面可以含有HTML标记,当客户通过浏览器请求一个JSP页面时,Tomcat服务器将该JSP 页面中的HTML标记直接发送给客户的浏览器,由客户的浏览器负责执行这些HTML标记。

      JSP 页面中的变量声明、程序片以及表达式由Tomcat服务器处理后,再将有关的结果用文本方式发送给客户端的浏览器。

         JSP页面中的HTML标记是页面的静态部分,即不需要服务器做任何处理,直接发送给客户的信息。

       以下介绍 JSP页面中使用的HTML标记

    2.1 表单标记

    表单的一般格式如下

    提交信息的目的地页面"  name="表单的名字">

              数据提交手段部分

     

     2.2 标记

    参考链接:HTML input 标签 | 菜鸟教程 (runoob.com)

       在表单中用Input标记来指定表单中数据的输入方式以及表单的提交键。

      其基本格式如下:

               输入对象的GUI类型"  name= "名字" >

       服务器通过属性name指定的名字来获取"输入对象的GUI类型"中提交的数据。

       "输入对象的GUI类型"可以是:text(文本框)checkbox(检查框)submit(提交键)hidden(隐藏) .

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <%
    3. String path = request.getContextPath();
    4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    5. %>
    6. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    7. <html>
    8. <head>
    9. <base href="<%=basePath%>">
    10. <title>My JSP 'index.jsp' starting pagetitle>
    11. <meta http-equiv="pragma" content="no-cache">
    12. <meta http-equiv="cache-control" content="no-cache">
    13. <meta http-equiv="expires" content="0">
    14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    15. <meta http-equiv="description" content="This is my page">
    16. head>
    17. <body>
    18. <form action="receive.jsp" method=post name=form>
    19. <P>请输入下列信息:
    20. <BR>输入您的姓名:<Input type="text" name="name" value="张三">BR>
    21. <BR>选择性别:<Input type="radio" name="R" value="男" checked="default">
    22. <Input type="radio" name="R" value="女">
    23. BR>
    24. <BR>选择您喜欢的歌手:
    25. <Input type="checkbox" name="superstar" value="张歌手" >张歌手
    26. <Input type="checkbox" name="superstar" value="李歌手" >李歌手
    27. <Input type="checkbox" name="superstar" value="刘歌手" >刘歌手
    28. <Input type="checkbox" name="superstar" value="王歌手" >王歌手
    29. BR>
    30. <Input type="hidden" value="这是隐藏信息" name="secret">
    31. <Input type="submit" value="提交" name="submit">
    32. form>
    33. body>
    34. html>

    receive.jsp页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <%@ page contentType="text/html;Charset=utf-8"%>
    3. <%
    4. String path = request.getContextPath();
    5. String basePath = request.getScheme() + "://"
    6. + request.getServerName() + ":" + request.getServerPort()
    7. + path + "/";
    8. %>
    9. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    10. <html>
    11. <head>
    12. <base href="<%=basePath%>">
    13. <title>My JSP 'receive.jsp' starting pagetitle>
    14. head>
    15. <body>
    16. <%
    17. request.setCharacterEncoding("utf-8");
    18. String yourName = request.getParameter("name"); //获取text提交的值
    19. String yourSex = request.getParameter("R"); //获取radio提交的值
    20. String secretMess = request.getParameter("secret"); //获取hidden提交的值
    21. String personName[] = request.getParameterValues("superstar");
    22. //获取checkbox提交的值
    23. out.println("<P> 您的姓名:" + yourName + "P>");
    24. out.println("<P> 您的性别:" + yourSex + "P>");
    25. out.println("<P> 您喜欢的歌手:");
    26. if (personName == null) {
    27. out.print("一个都不喜欢");
    28. } else {
    29. for (int k = 0; k < personName.length; k++) {
    30. out.println(" " + personName[k]);
    31. }
    32. }
    33. out.println("<P> hidden提交的值:" + secretMess);
    34. %>
    35. body>
    36. html>

    获取表单提交的数据: 

     

  • 相关阅读:
    C51--蓝牙HC-08
    一文带大家,彻底了解【NAT技术-网络地址转换】
    Java 新手如何使用Spring MVC 中的查询字符串和查询参数?
    推荐模型复现(一):熟悉Torch-RecHub框架与使用
    亿万级分库分表后如何进行跨表分页查询
    python 基于http方式与基于redis方式传输摄像头图片数据的实现和对比
    如何使用TDengine Sink Connector?
    Baklib经验分享 | 一些搭建帮助中心的攻略
    PostgreSQL执行计划介绍
    HTTP 常见的请求头
  • 原文地址:https://blog.csdn.net/qq_45047809/article/details/123955484