📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

关于JSP

创建时间2022-08-17最后修改2022-08-17原位置/程序员成长之旅/Java学习/笔记/字数1378图片/附件1
目录:程序员成长之旅/Java学习/笔记

关于JSP

介绍

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

JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。

简介

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束

JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

JSP 基于Java Servlet APIJB,JAXP等等。

什么是Java Servlet

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

🖼 图片占位(归档模式)图片见原始导出:https://anying-blog-pic.oss-cn-beijing.aliyuncs.com/images/servlet-arch.jpg
Servlet任务
  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。

  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。

  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。

  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。

  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

关于Tomcat

在市场上有许多 Web 应用服务器支持 Servlet。有些 Web 应用服务器是免费下载的,Tomcat 就是其中的一个。

Servlet生命周期
  • Servlet 初始化后调用 init () 方法。

  • Servlet 调用 service() 方法来处理客户端的请求。

  • Servlet 销毁前调用 destroy() 方法。

  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的

Servlet部署
  1. 创建一个继承于HttpServlet的类

  2. 
    

// Hello World

// 导入必需的 java 库

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

// 扩展 HttpServlet 类

public class HelloWorld extends HttpServlet {

private String message;

public void init() throws ServletException

{

// 执行必需的初始化

message = "Hello World";

}

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

{

// 设置响应内容类型

response.setContentType("text/html");

// 实际的逻辑是在这里

PrintWriter out = response.getWriter();

out.println("`<h1>` " + message + "`</h1>` ");

}

public void destroy()

{

// 什么也不做

}

}


2. 编译该类文件, 获取到`.class`文件

3. 关于`.class`放在哪

1. 默认情况下,Servlet 应用程序位于路径 `<Tomcat-installation-directory>/webapps/ROOT `下,且类文件放在 `<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes` 中。

2. 如果您有一个完全合格的类名称 **com.myorg.MyServlet**,那么这个 Servlet 类必须位于 `WEB-INF/classes/com/myorg/MyServlet.class` 中。

3. 既, 需要将该`.class`复制到`<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes` 中

4. 在位于` <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/`的 **web.xml** 文件中创建以下条目

1. ```xml

<web-app>

<servlet>

<servlet-name>HelloWorld</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

</web-app>
  1. 启动Tomcat服务器

  2. 到这里,您基本上已经完成了,现在让我们使用 <Tomcat-installation-directory>` \bin\startup.bat`(在 Windows 上)或 /bin/startup.sh(在 Linux/Solaris 等上)启动 tomcat 服务器

  3. 最后在浏览器的地址栏中输入 http://localhost:8080/HelloWorld。如果一切顺利,您会看到结果

Servlet表单数据

很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序。浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。

Get方法

ET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔,如下所示:


http://www.test.com/hello?key1=value1&key2=value2

这些信息使用 QUERY_STRING 头传递,并可以通过 QUERY_STRING 环境变量访问,Servlet 使用doGet()方法处理这种类型的请求。

POST方法

POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息

消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。

使用Servlet读取表单数据

Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析:

  • **getParameter():**您可以调用 request.getParameter() 方法来获取表单参数的值。

  • **getParameterValues():**如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。

  • **getParameterNames():**如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

HTML

``

为页面上的所有链接规定默认地址或默认目标

使用指定的基本 URL 来解析所有的相对 URL。这其中包括 `<a>` 、`<img>` 、`<link>` 、`<form>`  标签中的 URL。