【servlet與Web.xml配置】
【關聯01:處理類與請求的關聯】
web.xml配置為:
<!-- 定義如何在浏覽器中通路此serlvet 如下即:通過/abc可以通路到demo類去處理-->
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>*.gdy</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>GenericServletone</servlet-name>
<servlet-class>ServerByGenerServlet</servlet-class>
<!-- 啟動時加載,即伺服器啟動時就加載該類,數組代表啟動時,啟動的順序 -->
<load-on-startup>3</load-on-startup>
</servlet>
java對應的類代碼為:
public class GServletConfig extends HttpServlet {
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
}
}
【關聯02:通過ServletConfig擷取配置資訊】
web.xml配置為:
<!-- GServletConig處理類 -->
<servlet>
<servlet-name>Gconfig</servlet-name>
<servlet-class>GServletConfig</servlet-class>
<!-- 定義類的全局變量 -->
<init-param>
<param-name>name</param-name>
<param-value>你猜猜我是誰</param-value>
</init-param>
<init-param>
<param-name>gdy</param-name>
<param-value>我是gdy</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Gconfig</servlet-name>
<url-pattern>*.gan</url-pattern>
</servlet-mapping>
對應的java擷取配置代碼為:
/**
* 處理【*.gan】請求
* 功能:學習ServletConfig
* @author Administrator
*
* 擷取ServletConfig的方法
* 1.采用帶參數的init方法
* 2.采用servlet執行個體擷取,(但不要寫在帶參數的init方法裡面)
*
*/
public class GServletConfig extends HttpServlet {
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
// //擷取web.xml配置檔案中的單個配置資訊
// String name=this.getServletConfig().getInitParameter("name");
// System.out.println(name);
//擷取多個配置資訊
Enumeration<String> enumer = this.getInitParameterNames();
while (enumer.hasMoreElements()) {
String wname = (String) enumer.nextElement();
System.out.println(wname+":"+this.getServletConfig().getInitParameter(wname));
}
}
}
【關聯03:通過ServletContext擷取定義的全局變量】
web.xml配置為:
<!-- 定義應用程式的全局的變量 -->
<context-param>
<param-name>name1</param-name>
<param-value>全局标量01</param-value>
</context-param>
<context-param>
<param-name>name2</param-name>
<param-value>全局變量02</param-value>
</context-param>
<!-- com.gdy.Servlet.GServletContext 處理類 處理請求為*.ggt -->
<servlet>
<servlet-name>Gggt</servlet-name>
<servlet-class>com.gdy.Servlet.GServletContext</servlet-class>
<load-on-startup>7</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Gggt</servlet-name>
<url-pattern>*.ggt</url-pattern>
</servlet-mapping>
java類擷取方法為:
/**
* 通過ServletContext擷取定義的全局變量
* @author Administrator
*
*/
public class GServletContext extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Enumeration<String> genum = this.getServletConfig().getServletContext().getInitParameterNames();
while (genum.hasMoreElements()) {
String str = (String) genum.nextElement();
System.out.println(str + ":" +this.getServletContext().getInitParameter(str));
}
}
}
【關聯04:請求轉發處理】
web.xml代碼為:
<!-- com.gdy.Servlet.GservletRealy類的建立 -->
<servlet>
<servlet-name>Grealy</servlet-name>
<servlet-class>com.gdy.Servlet.GservletRealy</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Grealy</servlet-name>
<url-pattern>*.realy</url-pattern>
</servlet-mapping>
<!-- com.gdy.Servlet.GservletGetRealy類的建立 -->
<servlet>
<servlet-name>Gdd</servlet-name>
<servlet-class>com.gdy.Servlet.GservletGetRealy</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Gdd</servlet-name>
<url-pattern>*.gdd</url-pattern>
</servlet-mapping>
Java請求轉發,和轉發後處理代碼為:
[請求轉發類]
/**
* 請求轉發執行個體,
* 處理請求為【*.realy】
* 功能:将帶*。realy的請求轉發到*。getregly上處理
*
*/
public class GservletRealy extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//擷取全局變量
ServletContext context = this.getServletContext();
//添加值
context.setAttribute("age", "13");
req.setAttribute("gname", "你猜我是什麼");
System.out.println("開始轉發");
//擷取請求轉發器
RequestDispatcher rd = context.getRequestDispatcher("/aa.gdd");
//轉發請求
rd.forward(req, resp);
}
}
[轉發後處理類為]
/**
* 處理請求類為【*.gdd】
* @author Administrator
*
*/
public class GservletGetRealy extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("成功接收");
//擷取context傳遞過來的值
String contname=(String)this.getServletContext().getAttribute("age");
//擷取servletrequest傳遞過來的值
String sername=(String)req.getAttribute("gname");
System.out.println("context傳遞過來的值:"+contname);
System.out.println("servletrequest傳遞過來的值:"+sername);
}
}