我是Web应用程序和Servlet的新手,我有如下问题: javascript
每当我在Servlet中打印某些内容并由网络浏览器调用它时,它将返回一个包含该文本的新页面。 有没有一种方法能够使用Ajax在当前页面中打印文本? html
我将向您展现servlet的整个示例以及ajax调用的方式。 java
在这里,咱们将建立一个简单的示例,以使用servlet建立登陆表单。 ajax
index.html json
<form> Name:<input type="text" name="username"/><br/><br/> Password:<input type="password" name="userpass"/><br/><br/> <input type="button" value="login"/> </form>
这是ajax示例 浏览器
$.ajax ({ type: "POST", data: 'LoginServlet='+name+'&name='+type+'&pass='+password, url: url, success:function(content) { $('#center').html(content); } });
LoginServlet Servlet代码:- 服务器
package abc.servlet; import java.io.File; public class AuthenticationServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ HttpSession session = request.getSession(); String username = request.getParameter("name"); String password = request.getParameter("pass"); /// Your Code out.println("sucess / failer") } catch (Exception ex) { // System.err.println("Initial SessionFactory creation failed."); ex.printStackTrace(); System.exit(0); } } }
$.ajax({ type: "POST", url: "url to hit on servelet", data: JSON.stringify(json), dataType: "json", success: function(response){ // we have the response if(response.status == "SUCCESS"){ $('#info').html("Info has been added to the list successfully.<br>"+ "The Details are as follws : <br> Name : "); }else{ $('#info').html("Sorry, there is some thing wrong with the data provided."); } }, error: function(e){ alert('Error: ' + e); } });
Ajax(也是AJAX,是异步JavaScript和XML的首字母缩写)是一组相互关联的Web开发技术,用于客户端以建立异步Web应用程序。 使用Ajax,Web应用程序能够异步向服务器发送数据和从服务器检索数据。下面是示例代码: 网络
Jsp页面Java脚本函数使用两个变量firstName和lastName将数据提交到servlet: session
function onChangeSubmitCallWebServiceAJAX() { createXmlHttpRequest(); var firstName=document.getElementById("firstName").value; var lastName=document.getElementById("lastName").value; xmlHttp.open("GET","/AJAXServletCallSample/AjaxServlet?firstName=" +firstName+"&lastName="+lastName,true) xmlHttp.onreadystatechange=handleStateChange; xmlHttp.send(null); }
Servlet读取以xml格式发送回jsp的数据(您也能够使用文本。只须要将响应内容更改成文本并在javascript函数上呈现数据便可。) app
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String firstName = request.getParameter("firstName"); String lastName = request.getParameter("lastName"); response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); response.getWriter().write("<details>"); response.getWriter().write("<firstName>"+firstName+"</firstName>"); response.getWriter().write("<lastName>"+lastName+"</lastName>"); response.getWriter().write("</details>"); }
使用引导多选
阿贾克斯
function() { $.ajax({ type : "get", url : "OperatorController", data : "input=" + $('#province').val(), success : function(msg) { var arrayOfObjects = eval(msg); $("#operators").multiselect('dataprovider', arrayOfObjects); // $('#output').append(obj); }, dataType : 'text' });} }
在Servlet中
request.getParameter("input")
一般,您没法从servlet更新页面。 客户端(浏览器)必须请求更新。 Eiter客户端加载整个新页面,或者请求更新现有页面的一部分。 这种技术称为Ajax。