首页 > 代码库 > javaEE servlet获取jsp内置对象

javaEE servlet获取jsp内置对象

既然jsp和servlet是等价的,在jsp中可以使用内置对象,那么在servlet中也可以使用。

1.获得out对象

可以使用如下代码获得out对象:

import java.io.PrintWriter;

...

public void doGet(HttpServletRequest request,HttpServletResponse response)throws 

ServletException,IOException{

PrintWriter out = reponse.getWriter();

}

...

不过默认情况下,out对象是无法打印中文的。这是因为out输出流中有中文却没有设置编码。解决这个问题可以将

doGet代码改为:

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

//使用out对象


2.获得request和reponse对象

...

public void doGet(HttpServletRequest request,HttpServletResponse response)throws 

ServletException,IOException{

//将reques参数当成request对象使用

//将reponse参数当成response使用

}

...


3.获得session对象

session对象对应的是HttpSession接口,在Servlet中它可以通过下面代码获得:

import javax.servlet.http.HttpSession;

...

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

HttpSession session = request.getSession();

//将session当成session对象来使用

}

...


4.获得application对象

application对象对应得是ServletContex接口,在Servlet中可以通过下面代码获得:

import javax.servlet.ServletContext;

...

public void doGet(HttpServletRequest request,HttpServletResponse response)throws 

ServletException,IOException{

ServletContext application = this.getServletContext();

//将application当成application对象来使用

}

...

值得一提的是,可以使用application实现服务器内跳转。由于servlet和jsp的同质性,常用的servlet内跳转有两种:

(1)重定向(对应jsp中的sendRedirect)

response.sendRedirect("URL地址");

(2)服务器内跳转(对应jsp中的forward)

ServletContext application = this.getServletContext();

RequestDispatcher rd = application.getRequestDispatcher("url地址");

rd.forward(request,response);

这两种在servlet内的跳转与jsp中提到的跳转是等效的。注意,两种情况下的url地址写法不一样。在第一种,如果写绝

对路径,必须将虚拟目录跟目录写在里面,如"/Proj09/page.jsp"而第二种方法中,不需要将虚拟路径根目录写在里

面,如“/page.jsp”