调用 Servlet

JavaWeb——Servlet(全网最详细教程) JavaWeb技术之Servlet 阅读详情

要调用 Servlet 或 Web 应用程序,请使用下列任一种方法:由 URL 调用、在 <FORM> 标记中调用、在 <SERVLET>标记中调用、在 JSP 文件中调用、在 ASP 文件中调用。

1. 由 URL 调用 Servlet
这里有两种用 Servlet 的 URL 从浏览器中调用该 Servlet 的方法:

(1) 指定 Servlet 名称:当用 WebSphere应用服务器 管理器来将一个 Servlet 实例添加(注册)到服务器配置中时,必须指定"Servlet 名称"参数的值。例如,可以指定将 hi 作为 HelloWorldServlet 的 Servlet 名称。要调用该 Servlet,需打开 http://your.server.name/servlet/hi。也可以指定 Servlet 和类使用同一名称(HelloWorldServlet)。在这种情况下,将由 http://your.server.name/servlet/HelloWorldServlet 来调用 Servlet 的实例。

(2) 指定 Servlet 别名:用 WebSphere应用服务器 管理器来配置 Servlet 别名,该别名是用于调用 Servlet 的快捷 URL。快捷 URL 中不包括 Servlet 名称。

2. 在 <FORM> 标记中指定 Servlet
可以在 <FORM> 标记中调用 Servlet。HTML 格式使用户能在 Web 页面(即从浏览器)上输入数据,并向 Servlet 提交数据。例如:
<FORM METHOD="GET" ACTION="/servlet/myservlet">
<OL>
<INPUT TYPE="radio" NAME="broadcast" VALUE="am">AM<BR>
<INPUT TYPE="radio" NAME="broadcast" VALUE="fm">FM<BR>
</OL>
(用于放置文本输入区域的标记、按钮和其它的提示符。)
</FORM>
ACTION 特性表明了用于调用 Servlet 的 URL。关于METHOD 的特性,如果用户输入的信息是通过 GET 方法向 Servlet 提交的,则 Servlet 必须优先使用 doGet() 方法。反之,如果用户输入的信息是通过 POST 方法向 Servlet 提交的,则 Servlet 必须优先使用 doPost() 方法。使用 GET 方法时,用户提供的信息是查询字符串表示的 URL 编码。无需对 URL 进行编码,因为这是由表单完成的。然后 URL 编码的查询字符串被附加到 Servlet URL 中,则整个 URL 提交完成。URL 编码的查询字符串将根据用户同可视部件之间的交互操作,将用户所选的值同可视部件的名称进行配对。例如,考虑前面的 HTML 代码段将用于显示按钮(标记为 AM 和 FM),如果用户选择 FM 按钮,则查询字符串将包含 name=value 的配对操作为broadcast=fm。因为在这种情况下,Servlet 将响应 HTTP 请求,因此 Servlet 应基于 HttpServlet 类。Servlet 应根据提交给它的查询字符串中的用户信息使用的 GET 或 POST 方法,而相应地使用 doGet() 或 doPost() 方法。

3.在 <SERVLET> 标记中指定 Servlet
当使用 <SERVLET> 标记来调用 Servlet 时,如同使用 <FORM> 标记一样,无需创建一个完整的 HTML 页面。作为替代,Servlet 的输出仅是 HTML 页面的一部分,且被动态嵌入到原始 HTML 页面中的其它静态文本中。所有这些都发生在服务器上,且发送给用户的仅是结果 HTML 页面。建议在 Java 服务器页面(JSP)文件中使用 <SERVLET> 标记。请参阅有关 JSP 技术
原始 HTML 页面中包含 <SERVLET> 和 </SERVLET> 标记。 Servlet 将在这两个标记中被调用,且 Servlet 的响应将覆盖这两个标记间的所有东西和标记本身。如果用户的浏览器可以看到 HTML 源文件,则用户将看不到 <SERVLET> 和 </SERVLET> 标记。要在 Domino Go Webserver 上使用该方法,请启用服务器上的服务器端包括功能。部分启用过程将会涉及到添加特殊文件类型 SHTML。当 Web 服务器接收到一个扩展名为 SHTML 的 Web 页面请求时,它将搜索 <SERVLET> 和 </SERVLET> 标记。对于所有支持的 Web 服务器,WebSphere应用服务器 将处理 SERVLET 标记间的所有信息。下列 HTML 代码段显示了如何使用该技术。
<SERVLET NAME="myservlet" CODE="myservlet.class" CODEBASE="url" initparm1="value">
<PARAM NAME="parm1" VALUE="value">
</SERVLET>
使用 NAME 和 CODE 属性带来了使用上的灵活性。可以只使用其中一个属性,也可以同时使用两个属性。 NAME 属性指定了 Servlet 的名称(使用 WebSphere应用服务器 管理器配置的),或不带 .class 扩展名的 Servlet 类名。CODE 属性指定了 Servlet 类名。使用 WebSphere应用服务器 时,建议指定 NAME 和 CODE,或当 NAME 指定了 Servlet 名称时,仅指定 NAME。如果仅指定了 CODE,则会创建一个 NAME=CODE 的 Servlet 实例。装入的 Servlet 将假设 Servlet 名称与 NAME 属性中指定的名称匹配。然后,其它 SHTML 文件可以成功地使用 NAME 属性来指定 Servlet 的名称,并调用已装入的 Servlet。NAME 的值可以直接在要调用 Servlet 的 URL 中使用。如果 NAME 和 CODE 都存在,且 NAME 指定了一个现有 Servlet,则通常使用 NAME 中指定的 Servlet。由于 Servlet 创建了部分 HTML 文件,所以当创建 Servlet 时,将可能会使用 HttpServlet 的一个子类,并优先使用 doGet() 方法(因为 GET 方法是提供信息给 Servlet 的缺省方法)。另一个选项是优先使用 service() 方法。另外, CODEBASE 是可选的,它指定了装入 Servlet 的远程系统的 URL。请使用 WebSphere应用服务器 管理器来从 JAR 文件配置远程 Servlet 装入系统。
在上述的标记示例中,initparm1 是初始化参数名,value 是该参数的值。可以指定多个"名称-值"对的集合。利用 ServletConfig 对象(被传递到 Servlet 的 init() 方法中)的 getInitParameterNames() 和 getInitParameter() 方法来查找参数名和参数值的字符串数组。在示例中,parm1 是参数名,并在初始化 Servlet 后被才被设置某个值。因为只能通过使用"请求"对象的方法来使用以 <PARAM> 标记设置的参数,所以服务器必须调用 Servlet service() 方法,以从用户处传递请求。要获得有关用户的请求信息,请使用 getParameterNames()、getParameter() 和 getParameterValues() 方法。
初始化参数是持续的。假设一台客户机通过调用一个包含某些初始化参数的 SHTML 文件来调用 Servlet。并假设第二台客户机通过调用第二个 SHTML 文件来调用同一个 Servlet,且该 SHTML 中未指定任何初始化参数。那么第一次调用 Servlet 时所设置的初始化参数将一直可用,并且通过所有其它 SHTML 文件而调用的所有后继 Servlet 都不会更改该参数。直到 Servlet 调用了 destroy() 方法后,才能重新设置初始化参数。例如,如果另一个 SHTML 文件指定了另一个不同的初始化参数值,虽然已此时已装入了 Servlet,但该值仍将被忽略。

4.在 JSP 文件中调用 Servlet
可以从 JavaServer 页面(JSP)文件中调用 Servlet。请参阅JSP技术部分。

5.在 ASP 文件中调用 Servlet
如果在 Microsoft Internet Information Server(IIS)上有遗留的 ASP 文件,并且无法将 ASP 文件移植成 JSP 文件时,可用 ASP 文件来调用 Servlet。在 WebSphere应用服务器 中的 ASP 支持包括一个用于嵌入 Servlet 的 ActiveX 控制,下面介绍ActiveX 控制AspToServlet 的方法和属性。
该方法说明如下:

(1) String ExecServletToString(String servletName);执行 ServletName,并将其输出返回到一个字符串中。

(2) ExecServlet(String servletName);执行 ServletName,并将其输出直接发送至 HTML 页面。

(3) String VarValue(String varName);获得一预置变量值(其它格式)。

(4) VarValue(String varName, String newVal);设置变量值。变量占据的总大小应小于 0.5 个千字
节(Kbyte)。且仅对配置文件使用这些变量。
其属性如下:
= Boolean WriteHeaders;若该属性为真,则 Servlet 提供的标题被写入用户处。缺省值为假。
= Boolean OnTest;若该属性为真,服务器会将消息记录到生成的 HTML 页面中。缺省值为假。
下列ASP 脚本示例是以 Microsoft Visual Basic Scripting(VBScript)书写的。
<%
' Small sample asp file to show the capabilities of the servlets and the ASP GateWay ...
%>
<H1> Starting the ASP->Java Servlet demo</H1>
<%
' Create a Servlet gateway object and initialize it ...
Set javaasp = Server.CreateObject("AspToServlet.AspToServlet")
' Setting these properties is only for the sake of demo.
' These are the default values ...
javaasp.OnTest = False
javaasp.WriteHeaders = False
' Add several variables ...
javaasp.VarValue("gal") = "lag"
javaasp.VarValue("pico")= "ocip"
javaasp.VarValue("tal") = "lat"
javaasp.VarValue("paz") = "zap"
javaasp.VarValue("variable name with spaces") = "variable value with spaces"
%>
<BR>
Lets check the variables
<%
Response.Write("variable gal = ")
Response.Write(javaasp.VarValue("gal"))
%>
<BR>
<%
Response.Write("variable pico = " & javaasp.VarValue("pico"))
%>

<BR>
<HR>
<%
galout = javaasp.ExecServletToString("SnoopServlet")
If javaasp.WriteHeaders = True Then
%>
Headers were written <%
Else
%>
Headers were not written <%
End If
Response.Write(galout)
%>
<H1> The End ...</H1>
 

防止通达信公式被盗?手把手教你用DLL加密+互联网验证(含易语言后台管理) 本文详细介绍了如何通过DLL加密与互联网验证技术保护通达信公式安全。从DLL加密实现、设备绑定到易语言后台管理,提供了一套完整的防护方案,有效防止公式被盗用。重点讲解了互联网验证登录和绑定设备等核心技术,帮助量化交易者守护核心资产。 阅读详情

相关推荐

PINN:当深度学习遇上朗伯-比尔定律

光谱数据处理中引入PINN的三种架构设计

qq_53529450的博客 133

WebSphere快速入门(12)

4.3 调用 Servlet调用 Servlet 或 Web 应用程序,请使用下列任一种方法:由 URL 调用、在 标记中调用、在 标记中调用、在 JSP 文件中调用、在 ASP 文件中调用。 1. 由 URL 调用 Servlet 这里有两种用 ServletURL 从浏览器中调用Servlet 的方法: (1) 指定 Servlet 名称:当用 WebSphere应用服务器

rmouse的专栏 918

gd32F4系列例程源码

GD32F4xx_Demo_Suites_V2.6.2

RPC与WebService简单理解

1.RPC相关基础 1.1 什么是RPC RPC(Remote Procedure Call),远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。(来自百度百科) RPC允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不需要显式编码这个远程调用的细节。(来自CSDN博客:https://blog.csdn.net/mindfloat...

JavaBoy的博客 1022

servlet调用的几种简单方式小总结

servlet调用的几种简单方式 这里总结的是我在学习web开发的过程中需要用到的几种比较常见的用于转发和调用servlet的方式,这些方式的使用率非常高。在网上总结了相关的方法,大多对于初学者不是特别的友好,自己总结了一下。 1.servlet直接转发到另一个servlet 我们在进行jsp页面点击按钮进行登录的时候,首先需要登录到进行登录检查的servlet,但是在下个jsp页面,我们需要那个...

The Neon的博客 5218

Servlet】 多个Servlet之间的调用规则(重定向解决方案与请求转发解决方案)

文章目录多个Servlet之间的调用规则1、多个Servlet之间调用规则2、重定向解决方案3、请求转发解决方案4、实验案例(1)请求转发解决方案(1)请求转发Over! 多个Servlet之间的调用规则 1、多个Servlet之间调用规则 前提条件: 某些来自于浏览器发送请求,往往需要服务端中多个Servlet协同处理。但是浏览器一次只能访问一个Servlet,导致用户需要手动通过浏览器发起多次请求才能得到服务。这样增加了用户获得服务难度,导致用户放弃访问当前网站。 提高用户使用感受规则:无论本次

Etui۹(・༥・´)و的博客 2162

cmd执行mysql备份数据_mysql数据库备份--java执行cmd命令

1、Process类介绍Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息...

weixin_35468857的博客 386

mysql数据库备份--java执行cmd命令

1、Process类介绍         Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。      Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。      ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类...

liuxi1024的专栏 431

java执行mysql备份命令行_[Sqlite]--)使用Java程序、cmd命令行来备份恢复Sqlite数据库...

import java.io.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class SqlitBackup {public String db_so...

weixin_42298754的博客 181

我用几行代码实现了mysql数据库的自动备份,老板说小伙子不错!

小编精心为大家准备了一手资料以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术【附】架构书籍BAT面试的20道高频数据库问题解析Java面试宝典Netty实战算法BATJ面试要点及Java架构师进阶资料试的20道高频数据库问题解析2. Java面试宝典3. Netty实战4. 算法[外链图片转存中…(img-1Lia6NYe-1711861329974)]

m0_62261166的博客 748

java备份数据库四种方法(mysql,mssql数据库备份)

<br />mysql数据库备份的东西,然后研究了一下java语言中怎么来调用cmd的命令来实现mysqldump的备份功能。具体实现如下: <br />1.首先设置环境变量:有两种方式。第一种,在环境变量中添加 mysql_home,设置内容为 mysql的安装路径,然后,在path中添加路径  %mysql_home%bin    。第二种方法,不新建mysql_home,而是直接在path中添加   mysql安装路径bin 。这样,调用cmd的时候可以直接找到mysqldump和mysql

xinuxlinux的专栏 1105

mysql备份数据库

[b]1.首先是备份数据库的cmd命令:[/b] mysqldump -u root -p db_name > c:/mysql.sqp db_name为数据库名称。 [b]2. 使用Java来执行cmd命令:[/b] [code="java"]String cmd="cmd /c dir c:\\"; Process proc=Runtime.getRuntime()....

···· 137

Java中CMD命令来备份mysql数据库备份文件出来为0字节问题

Java中CMD命令来备份mysql数据库备份文件出来为0字节问题 https://blog.csdn.net/qq_36936155/article/details/78978242 今天客户打电话来说我们的系统备份的sql文件为空文件。 这让我很凌乱,我们测试过滴,执行很成功嘛。 可客户使用的时候确实是备份失败嘛 ,这是事实。 我东测试西测试,在本机咋滴还是没出现这样的问题; 没办法装了个虚拟机,安装了和客户一样的操作系统 ,并且按照客户安装步骤进行部署。 结果,神奇事情出现了,所备份的数据库文.

487

Java web 项目中对数据库备份和恢复

说白了,还是去调用cmd实现数据库的备份和还原功能。备份:mysqldump -hserverUrl -uusername -ppassword dbname &gt; savePath还原:mysql -hserverUrl -uusername -ppassword dbname &lt; filePathpackage com.cxx.backupdb; import java.io.*;...

蓝星花 8228

java 调用mysql命令行_java使用Runtime类 调用命令行 备份mysql数据库

java 调用命令行 备份mysql数据库// 方式1String command = "D:\\mysql\\bin\\mysqldump -h127.0.0.1 -uroot -p -ntd -R -dbname";Runtime runtime = Runtime.getRuntime();Process process = runtime.exec(command);InputStream...

weixin_28691441的博客 344

java 调用命令行 备份mysql数据库

查看文本打印? // 方式1       String command = "D:\\mysql\\bin\\mysqldump -h127.0.0.1 -uroot -p -ntd -R -dbname";       Runtime runtime = Runtime.getRuntime();       Process process = runtime.exec(co

binyao02123202的专栏 1222

java实现数据备份和恢复

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.O

2677

java实现备份mysql、恢复mysql

目录1.背景2.核心3.注意点4.代码记录4.1java执行脚本 1.背景 今天需要对mysql进行定时备份,并且根据备份记录恢复数据,这篇文章主要记录备份过程。 2.核心 mysql备份命令:mysqldump -h{host} -u{user} -p{password} {dbName} > {backupDir} mysql恢复命令:mysql -h{host} -u{user} -p{password} {dbName} < {backupDir} java执行命令工具类:采用第三方ja

路漫漫其修远兮 797

XNMS项目-mysql数据库备份

mysql数据库备份

刘大猫 1057

数据库备份与还原

备份 File directory = new File("");// 参数为空 String courseFile = directory.getCanonicalPath(); Process exec = Runtime.getRuntime() .exec("cmd /c " + courseFile + "\\mysqldump -h127.0.0.1 -u roo...

qq_31683033的博客 243

java在不同电脑中通信,用JAVA实现不能相互通信的两台电脑间进行增量备份

业务上有这么一个需求:有两台电脑都可以对同一数据库进行操作,但其中一台电脑始终离线,所以与其交互只能通过U盘拷数据库的东西进行增量备份与同步。分两步实现,先手动实现增量备份的功能,然后再通过java程序调用cmd命令自动执行。实现过程中参照下面链接,最关键的是java调用时,没有配置mysql环境变量。http://www.jb51.net/article/27919.htm1、先设置my.ini...

weixin_35384453的博客 179
上一篇: 创建HTTP Servlet
下一篇: Eclipse+Tomcat集成开发servlet
rmouse_2005
博客等级 码龄21年 7粉丝 85原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值