关于JSP
关于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 服务器上的数据库或应用程序之间的中间层。

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部署
创建一个继承于
HttpServlet的类
// 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>
启动
Tomcat服务器到这里,您基本上已经完成了,现在让我们使用
<Tomcat-installation-directory>` \bin\startup.bat`(在 Windows 上)或/bin/startup.sh(在 Linux/Solaris 等上)启动 tomcat 服务器最后在浏览器的地址栏中输入 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。