我是Web应用程序和Servlet的新手,我有以下问题:
每当我在Servlet中打印某些内容并由网络浏览器调用它时,它将返回一个包含该文本的新页面。 有没有一种方法可以使用Ajax在当前页面中打印文本?
#1楼
我将向您展示servlet的整个示例以及ajax调用的方式。
在这里,我们将创建一个简单的示例,以使用servlet创建登录表单。
index.html
<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);
        } 
    }
}
 
#2楼
$.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);
 }
});
 
#3楼
Ajax(也是AJAX,是异步JavaScript和XML的首字母缩写)是一组相互关联的Web开发技术,用于客户端以创建异步Web应用程序。 使用Ajax,Web应用程序可以异步向服务器发送数据和从服务器检索数据。下面是示例代码:
Jsp页面Java脚本函数使用两个变量firstName和lastName将数据提交到servlet:
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函数上呈现数据即可。)
/**
 * @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>");
}
 
#4楼
使用引导多选
阿贾克斯
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")
 
#5楼
通常,您无法从servlet更新页面。 客户端(浏览器)必须请求更新。 Eiter客户端加载整个新页面,或者请求更新现有页面的一部分。 这种技术称为Ajax。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3191914