標籤:
在前面的部落格裡面,使用Servlet取得了request,response,config對象,實際上通過Servlet程式也可以取得session,application等內建對象。
1,通過HttpServletRequest取得HttpSession
<span style="white-space:pre"></span>//返回當前的sessionpublic abstract HttpSession getSession();//返回當前的session,如果沒有則建立一個新的session對象返回public abstract HttpSession getSession(boolean paramBoolean);
package linkin;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LinkinServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{HttpSession session = req.getSession();System.out.println(session.getId());//4214F4CE399E02730C3219CF0BD83623session.setAttribute("age", 25);System.out.println(session.getAttribute("age"));//25}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{this.doGet(req, resp);}}
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>LinkinServlet</servlet-name><servlet-class>linkin.LinkinServlet</servlet-class><init-param><param-name>name</param-name><param-value>LinkinPark...</param-value></init-param></servlet><servlet-mapping><servlet-name>LinkinServlet</servlet-name><url-pattern>/LinkinServlet</url-pattern></servlet-mapping></web-app>
2,利用GenericServlet取得ServletContext執行個體
public ServletContext getServletContext() { return getServletConfig().getServletContext(); }
package linkin;import java.io.IOException;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LinkinServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ServletContext context = getServletContext();//擷取“/”,也就是項目實際在伺服器上物理位置System.out.println(context.getRealPath("/"));//E:\Workserver\apache-tomcat-6.0.37\webapps\linkin}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{this.doGet(req, resp);}}
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>LinkinServlet</servlet-name><servlet-class>linkin.LinkinServlet</servlet-class><init-param><param-name>name</param-name><param-value>LinkinPark...</param-value></init-param></servlet><servlet-mapping><servlet-name>LinkinServlet</servlet-name><url-pattern>/LinkinServlet</url-pattern></servlet-mapping></web-app>
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Servlet--取得session,application內建對象