您的位置:首页 > Web前端 > JavaScript

[Jweb] JSP-编程 07 Servlet和JSP的通信

2014-01-02 23:34 381 查看
* 从JSP调用Servlet可用<jsp:forward> 请求信息自动传递到Servlet

* 或者通过sendRedirect

* 从Servlet调用JSP使用

* RequestDispatcher接口的forward(req, res)方法

* 请求信息需要显式传递(在req、res参数中)

* 或者通过sendRedirect

* 例如:

* FromJspToServlet.jsp / ServletToJsp.java / ServletUseJsp.jsp

* forward可以用 ”/” 路径, 是指web app的根路径, servlet forward jsp的时候一定要用 “/”开头

* jsp sendRedirect到servlet应该用相对路径,因为这里”/”指网站的根路径

* servlet sendRedirect jsp也是

* request.getContextPath起作用了

ServletToJSP.java

import javax.servlet.*;
import javax.servlet.http.*;

public class ServletToJSP extends HttpServlet {
public void doGet (HttpServletRequest req,HttpServletResponse resp) {
try {
// 设置属性并将它提交给ServletUseJsp.jsp
resp.setContentType("text/html;charset=gb2312");
req.setAttribute ("servletName", "ServletToJsp");
//forward
//getServletConfig().getServletContext().getRequestDispatcher("/servlet_jsp/ServletUseJsp.jsp").forward(req, resp);
//sendredirect
System.out.println(req.getContextPath());
resp.sendRedirect(req.getContextPath() + "/servlet_jsp/ServletUseJsp.jsp");
}catch (Exception e){
e.printStackTrace ();
}
}
}
FromJspToServlet.jsp
<html>
<body bgcolor="green">
<!-- Forward to a servlet,这个servlet存放在web-inf的servlet目录下 -->
<jsp:forward page="/servlet/ServletToJSP" />
</html>
ServletUseJsp.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<meta context="text/html;charset=gb2312" >
<head>
<title>Servlet使用JSP</title>
</head>
<body bgcolor="gray">
<h2>Servlet使用JSP的例子:</h2>
<h2>
这个页面是被
这个Servlet调用的.
</h2>
</body>
</html>
ServletToJsp.jsp
import javax.servlet.*;
import javax.servlet.http.*;

public class ServletToJSP extends HttpServlet {
public void doGet (HttpServletRequest req,HttpServletResponse resp) {
try {
// 设置属性并将它提交给ServletUseJsp.jsp
resp.setContentType("text/html;charset=gb2312");
req.setAttribute ("servletName", "ServletToJsp");
//forward
//getServletConfig().getServletContext().getRequestDispatcher("/servlet_jsp/ServletUseJsp.jsp").forward(req, resp);
//sendredirect
System.out.println(req.getContextPath());
resp.sendRedirect(req.getContextPath() + "/servlet_jsp/ServletUseJsp.jsp");
}catch (Exception e){
e.printStackTrace ();
}
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: