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

servlet调用的几种简单方式

这里总结的是我在学习web开发的过程中需要用到的几种比较常见的用于转发和调用servlet的方式,这些方式的使用率非常高。在网上总结了相关的方法,大多对于初学者不是特别的友好,自己总结了一下。

1.servlet直接转发到另一个servlet

我们在进行jsp页面点击按钮进行登录的时候,首先需要登录到进行登录检查的servlet,但是在下个jsp页面,我们需要那个页面通过servlet进行转发,所以需要从servlet直接跳转到另一个servlet,其实写法很简单,只要保证映射地址正确即可.

response.sendRedirect("xxxxx");

xxxx: 是你需要转发的servlet的映射地址

2.使用a标签跳转到servlet的两种情况

1.第一种情况

每一个功能对应一个servlet的时候,这时我们用标签直接调用servlet的时候,语法如下:

<a href="product?&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>

其中product是对应的servlet的映射地址,用?问好隔开,& + 参数名+ = + 参数值,参数值可以用el表达式去表示。

2.第二种情况

当我们把多个servlet进行合并的时候,对应的每一个servlet肯定都会有相应的描述的方法,这种情况下使用a标签进行servlet的调用语法如下:

<a href="product?method=productList&cid=${cid}&page=${status.index}" rel="external nofollow" >${status.index}</a>

其中product是对应的servlet的映射地址,中间使用?问好隔开,method+ = 方法 即 productList,后面的参数和参数名称和第一种情况的表示方式一样。

3.最简单的一种用表单调用

直接在表单的action中添加servlet的映射地址,同时表明该提交servlet的方法是get还是post,两种区别还是比较大的。

<form action="servlet" method="get">
  <input type="submit" value="test">
 </form>

4.通过脚本编写函数的方式调用servlet

首先我们先些一个按钮,即button,这里要特别主题该按钮需要放在表单里面才会有效果,即相当于一个提交的效果。

//这里为按钮添加了onclick的时间,并链接到一个函数上
<input type="button" value="button" "test();">

//这里是函数部分,用于跳转到需要使用的servlet上
function test()
{
 var f=document.forms[0];
 f.action="servlet"; //这里填写的是servlet的映射地址
 f.submit();
}

这里的本质是把button按钮赋予了submit的功能。

5. 通过ajax请求servlet

因为ajax的优点不仅在于可以在不转发servlet的情况下进行页面的更新

通过ajax实现请求:

function Test(id) {
    $.ajax({
     type:"get",
     url:"${pageContext.request.contextPath }/Servlet",
     data:{"id":id}
    });
   } 

这里的路径URL有固定的格式,后面跟的servlet是需要调用的servlet的映射地址

再举一个例子,也掌握一下ajax的具体用法

//以下是js中的ajax
 <script type="text/javascript">
 function ajaxFun(){
 $.ajax({
   type: "POST",      //传数据的方式
   url: "TestServlet",    //servlet地址
   data: $('#form').serialize(),  //传输的是form表单里面的数据
   success: function(result){   //传数据成功之后的操作 result是servlet传回来的数据 这个函数对result进行处理,让它显示在 输入框中,也就是回调一个函数,但是概念不同
   $("#result").val(result);   //根据id找到输入框 并且将result的值传进去
   }
  });
 }
 </script>

 //下面是html的代码和表单
 <div align="center"><form id="form">
 first:<input type="text" name="first" id="first">
 second:<input type="text" name="second" id="second">

 //这里给按钮添加了点击的事件
 <button type="button" "ajaxFun()">button</button> //提交按钮
 </form>
 	// 用来显示result的文本框
 	<input type="text" id="result">
 </div>

//上面的请求需要返回result 那么这个值由servlet去返回 部分代码如下
String first = request.getParameter("first");  //从页面获取数据first
String second = request.getParameter("second");  //从页面获取数据second
String result=first+second;
System.out.println(result); //用于测试打印是否有数据;
out.println(result); //将数据传到前端,这步非常重要

到此这篇关于详解servlet调用的几种简单方式总结的文章就介绍到这了,更多相关servlet调用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • js调用后台servlet方法实例

    1.使用document.form.action方式 相关源码如下: *.js [javascript] 复制代码 代码如下: <span style="white-space:pre">  </span> document.getElementById("sendPerson").value = SendPerson;  document.getElementById("currentTime").value = cur

  • JSP 开发之servlet中调用注入spring管理的dao

    JSP 开发之servlet中调用注入spring管理的dao 我们用spring的依赖注入可以将dao注入到action中,然后我们就可以直接调用了dao中的方法了,可是servlet不是由spring容器管理,所以在servlet中不能注入dao类,也就不能用dao中的方法. 下面是实现方法: private UserDao userDao; public void init() throws ServletException { super.init(); ServletContext s

  • C#中调用Servlet示例

    需求 通用消息接口使用servlet作为服务器端服务接口,第三方应用程序通过http post的方式调用servlet,实现与通用消息接口的调用连接. 参数说明如下: msgTitle:消息标题,描述发送消息的标题 serviceId:服务编号,消息的服务编号 msgDesp:消息描述,消息的详细内容 msgURL:URL地址,消息中包含的 URL 上述4个参数的参数值可以为空,但参数必须提供. 调用示例 下面一段简单的html代码,描述了如何通过网页进行调用通用消息接口的模式,供参考. 复制代

  • 详解servlet调用的几种简单方式总结

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

  • 详解PHP调用Go服务的正确方式

    问题 服务耦合 我们在开发过程中可能会遇到这样的情况: 进程依赖于某服务,所以把服务耦合在进程代码中: 服务初始化耗时长,拖慢了进程启动时间: 服务运行要占用大量内存,多进程时内存损耗严重. 文本匹配服务,它是消息处理流程中的一环,被多个消息处理进程依赖,每次初始化进程要 6秒 左右时间构造 Trie 树,而且服务读取关键词大文件.使用树组构造 Trie 树,会占用大量(目前设置为 256M )内存. 我已经把进程写成了守护进程的形式,让它们长时间执行,虽然不用更多地考虑初始化时间了,但占用内存

  • 详解C++ 中的三种继承方式

    public 方式继承 基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员. 基类成员对派生类对象的可见性对派生类对象来说,基类的公有成员是可见的,其他成员是不可见的. 所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员. 简单来说,派生类能访问基类的public, prote

  • 详解Java数组的四种拷贝方式

    目录 深拷贝与浅拷贝的区别 1.for循环进行拷贝 拷贝数值类型 拷贝引用类型 2.copyof/copyOfRange 拷贝数值类型 拷贝引用类型 3.arraycopy 拷贝数值类型 拷贝引用类型 4.clone 拷贝数值类型 拷贝引用类型 5.总结 深拷贝与浅拷贝的区别 假设现在有原数组A以及拷贝后的数组B,若是改变A中的某一个值,B数组随之相应的发生变化的拷贝方式称为浅拷贝,反之B数组不受影响,则称为深拷贝:简单总结一下两者的概念: 深拷贝:拷贝后,修改原数组,不会影响到新数组: 浅拷贝

  • 详解Android 进程间通信的几种实现方式

    一.概述 由于应用程序之间不能共享内存.在不同应用程序之间交互数据(跨进程通讯),在Android SDK中提供了4种用于跨进程通讯的方式. 这4种方式正好对应于android系统中4种应用程序组件:Activity.Content Provider.Broadcast和Service.其中Activity可以跨进程调用其他应用程序的Activity:Content Provider可以跨进程访问其他应用程序中的数据(以Cursor对象形式返回),当然,也可以对其他应用程序的数据进行增.删.改操

  • 详解iOS 计步器的几种实现方式

    这篇文章介绍两种可以获取计步数据的方法,一种是采用CMPedometer获取手机计步器数据,另一种是采用HealthKit框架从手机健康App中获取计步数据.另外玩了一下写入数据到健康App.有描述不当之处,望指点. 花絮(用HealthKit框架构建app,写入数据到苹果健康app中,QQ和Keep等第三方app的运动数据都会随之改变,猜测它们的运动数据是直接从苹果健康app中获取,而且没有过滤掉其它数据来源.而微信运动的数据不会变,猜测其来源可能是使用CMPedometer类获取的,因为测试

  • 详解Java文件下载的几种实现方式

    Java文件下载的几种方式,具体如下: public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径. File file = new File(path); // 取得文件名. String filename = file.getName(); // 取得文件的后缀名. String ext = filename.substring(filena

  • 详解SpringBoot工程的三种搭建方式

    SpringBoot的主要目的是简化配置文件,通过少量配置即可运行Java程序,其强大的自动配置功能帮助开发者轻松实现配置装配,通过引入SpringBoot的 starter 就能实现想要的功能,不需要额外的配置. 目前SpringBoot工程有三种搭建方式: 通过Spring Initializr创建 通过IDEA创建工程 手动创建工程 官方生成工具 Spring团队提供一个非常方便的网页用于生成SpringBoot工程,打开浏览器进入Spring Initializr: 工程生成参数列表:

  • 详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐) 调用python脚本中的函数 准备工作: 创建maven工程,结构如下: 到官网https://www.jython.org/download.html下载Jython的jar包或者在maven的pom.xml文件中加入如下代码: <dependency> <groupId>org

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

随机推荐