servlet对jsp页面的响应

时间:2012-08-04 09:28:53

标签: java javascript ajax jsp servlets

让我们说servlet text.java将一个html内容返回给jsp页面index.jsp。

IN index.jsp

<button onclick="location.href='text'">CLICK</button>

IN text.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
     out.println("<b>HELLO</b>");
    } finally { 
        out.close();
    }
} 

现在我们说servlet响应Web浏览器的请求,然后点击按钮后,为什么在url而不是jsp页面中,servlet的名称就在那里,控件不会返回到jsp页面。

这只能用ajax(formelement.innerHTML = ob.responseText())吗? //其中var ob = new XMLHttpRequest();

3 个答案:

答案 0 :(得分:4)

你可以这样继续......

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    String str = "<b>heloo</b>";
    request.setAttribute("result", str);
    request.getRequestDispatcher("/index.jsp").forward(request, response);
}

并在jsp中得到结果:

request.getAttribute("result");

答案 1 :(得分:2)

JSP是作为模板编写的servlet。 Servlet是服务器端的,通常不会相互调用。这是您的网页(无论是否通过jsp生成),它将链接暴露给URL,而不是Java文件。单击链接后,浏览器会向服务器发送请求以获取链接的URL。因此,在您的服务器上,此URL(由您自定义)必须映射到将处理请求并生成响应的Servlet类。这个URL到servlet的映射是在WAR的web.xml文件中配置的。

答案 2 :(得分:0)

您应该看到如何在web.xml中映射servlet,搜索基本的servlet教程。

你不能给像text.java这样的链接,并期望它会触发text.java servlet。你需要将一个url映射到servlet类