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自定义标签来完成的)