1,使用部署描述器開發WEB應用程序
1.1使用虛擬路徑
知識點:1.1.1 (上下文名,直接拷貝到webapps目錄,直接訪問文件夾)
1.1.2 war:web程序壓縮包
製作: d:/hello>jar cvf hello.war *.*
訪問:拷貝hello.war到webapps目錄,重啓tomcat,發現會自動解壓
ear:
1.1.3 web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Mys</servlet-name>//別名
<servlet-class>InputNameToServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Mys</servlet-name>
<url-pattern>/Myweb/Myweb</url-pattern>//部署虛擬路徑
</servlet-mapping>
</web-app>
1.1.4 Form表單的修改:
action="Myweb/Myweb" //千萬不要加 / ,否則代表的是頂級目錄
1.2 Servlet 生命週期
知識點:JBoss:EJB容器
WebLogic:EJB容器和jsp,servlet容器
連接池:
init,service,destroy都是容器自動調用的,一般不需要重載。
1.3 Servlet 的跳轉
RequestDispatcher rd = null;//定義變量
rd = req.getRequestDispatcher("/CHN");//跳轉到另外一個類
rd.forward(req,res);//傳遞兩個變量過去
1.4 ServletContext(上下文參數)
作爲一個全局變量來理解,可以放數據庫連接,提高訪問效率,實現共享
web.xml中(必須放在前面)定義變量
<context-param>
<param-name>cname</param-name>
<param-value>ggyy</param-value>
</context-param>
InputNameToServlet.java中得到變量
ServletContext sc = getServletContext();
String cname = sc.getInitParameter("cname");
1.5 利用web.xml中的context-param和StringTokenizer方法讀寫文本數據庫
web.xml中
<context-param>
<param-name>filename</param-name>
<param-value>/WEB-INF/stud.txt</param-value>
</context-param>
ReadTxt.java中
String filename = sc.getInitParameter("filename");
InputStream is = sc.getResourceAsStream(filename);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while((s=br.readLine())!=null){
StringTokenizer st = new StringTokenizer(s);
while(st.hasMoreTokens()){
String ssn = st.nextToken();
String name = st.nextToken();
String sex = st.nextToken();
out.println("<tr bgcolor=#FFFFFF><td>"+ssn+"</td><td>"+name+"</td><td>"+sex+"</td></tr>");
}
}
1.6 利用web.xml中的<listen></listen>來實現容器啓動和關閉的時候加載、銷燬某些對象。
1.7 使用會話管理(sessionManagement)
1.7.1 使用cookie
1.7.2 使用url重寫方式
家庭作業:做一個JSP留言本
找使用strus進行mvc開發的資料(view中是不能有任何java代碼,用jsp自定義標籤來完成的)