1. 符合 j2ee 标准的 web-app 的目录结构
WEB-INF classes
web.xml lib
-
servlet 开发过程
从 httpservlet 继承, 重写 doget / doPost 方法部署web.xml
-
servlet 声明周期
-
只有一个对象
-
第一次请求的时候被初始化,只一遍
-
初始化后先调用init方法,只一遍
-
每个请求,调用一遍serviceàserviceàdoGet/doPost。以多线程的方式运行
不要在 servlet 中设计成员变量。
-
卸载前调用destroy方法
-
-
为什么有 2 个 init 方法
-
/的含义
-
form
form提交中action的路径可以为虚拟路径, 也可以为绝对路径,/代表 http://127.0.0.1/ -
web.xml
web.xml中url-pattern为webapplication根路径,/代表http://127.0.0.1/Test/6.乱码
-
场合:页面本身有中文的时候
解决办法:servlet:
Jsp:
注意:一定要写在 PrintWriter out = resp.getWriter();之前
resp.setContentType("text/html;charset=gbk");
<%@ page contentType="text/html;charset=gb2312"%>
场合:解决 get 方式乱码问题: 解决办法:
修改 server.xml àURIEncoding="GBK"
场合:解决 post 方式提交内容的乱码 解决办法:request.setCharacterEncoding("GBK"); 注意:一定要写在存取第一个参数之前
不要调用 response.setCharacterEncoding("GBK");
场合:<jsp:param name="user" value="<%=s%>"/>,url 地址包含中文参数
解决办法:<%request.setCharacterEncoding("GBK");%>
注意:
7. Cookie 和 session 的区别
注意 cookie 有时候禁不掉
cookie | session |
存储在客户端 | 存储在服务器 |
两种类型 有生命周期 无生命周期 |
两种实现方式 依赖于cookie url重写 |
父路径不能访问子路径的cookie | 同一个session的窗口共享一个session |
典型应用 保存一个月 一年 购物车 |
典型应用 用户登录 购物车 |
不可靠 | 可靠 |
8. application (ServletContext)的概念 9. jsp 初学者容易犯的错误
WEB-INF 子目录下面不能放置 html jsp 等文件 不能直接打开
10. jsp/servlet 连接数据库时要注意的事 项
拷贝数据库驱动的 jar 包到 apache-tomcat-6.0.14webappsTestWEB-INFlib 文件夹
确认数据库已经启动
用户名、密码应该正确
-
<%! <%区别
-
如何解决 ie 缓存问题
-
TestErr.jsp / ErrPage.jsp
不太稳定,有的时候不好使:
-
先不写这句话:<%@page errorPage="ErrPage.jsp"%>
-
Ie不行,firefox行
14. <%@include 和 jsp:include 的区别
<%@ include file="date.jsp" %> |
<jsp:include page="date.jsp" flush="true"/> |
include 编译指令是在 JSP 程序的转换时期就 将 file 属性所指定的程序内容嵌入,然后再 编译执行; |
而 include 指令在转换时期是不会被编译的, 只有在客户端请求时期如果被执行到才会被 动态的编译载入 |
只生成一个 class 文件 |
多个 |
Include 不能带参数 |
<jsp:include>可以 |
同一个 request 对象 |
不同的 request 对象,可以取得包含它的页面 的参数,并添加了自己的参数 |
常用 |
不常用 |
15. forward 和 sendredirect 的区别
Sendredirect |
Forward |
是不同的 request |
虽然是不同的对象,但是,可以取到上一个页面的内容 |
send 后的语句会继续执行,除非 return |
forward 后的语句不会继续发送给客户端 |
速度慢 |
速度快 |
需要到客户端的往返,可以转到任何页面, |
服务器内部转换, |
地址栏有变化 |
地址栏没有变化 |
可以传参数,直接写在 url 后面 |
可以传参数 |
/代表的是 http://127.0.0.1/
<%response.sendRedirect("/test/ServletToJSP");%>
<form action="/test/ServletToJSP"> |
/代表的是 http://127.0.0.1/test this.getServletContext().getRequestDispatch ("/servlet_jsp/ServletUseJsp.jsp") .forward(req, resp); 并且只能以/开头 |
常用 |
常用 |
16. <jsp:useBean scope = page|request|session|application>
17. jsp 内 置 对 象 : out request response session application exception