servlet的生命周期:
从始致终只有一个对象,第一次请求的时候初始化一遍(constructer),只一遍,然后调用init方法,也是只一遍,然后以多线程的方法处理请求(调用doGet()、doPost()),最后在卸载的时候,调用destory()方法.
session和cookie的区别:
session cookie
运行在服务器端 运行在客户端
安全 不安全
文件大小没有限制 文件大小有限制,最大不能超过4k
两种实现方式(依赖于cookie、URL重写) 两种类型(有生命周期、无生命周期)
<jsp:forward page="target.jsp"/>和response.sedRedrict("要转向的页面")的区别:
<jsp:forward page="target.jsp"/> response.sedRedrict("target.jsp")
转向后,后面的语句将不在执行 转向后,后面的语句将继续执行
地址栏没有变化 地址栏有变化
速度快 速度慢
转向的目标页面紧限于application内部 可以转向任何页面(google、linuxsir等)
可以带参数 可以带参数
<@ include file="_include.jsp">和<jsp:include page="_include.jsp" flush="true"/>的区别:
<@ include file="_include.jsp"> <jsp:include page="_include.jsp" flush="true"/>
在JSP页面转译的时候就已经将程序嵌入, 在执行到此条语句时在将被包含页面转译
常用 不常用
不可以带参数 可以带参数
JSP内置对象:
out、request、response、application、exception、session
解决乱码问题:
页面本身有中文的时候(servlet) | resp.setContentType("text/html;charset=gbk"); 注意:一定要写在PrintWriter out = resp.getWriter();之前 |
页面本身有中文的时候(JSP) | <%@ page contentType="text/html;charset=gb2312"%> |
解决get方式乱码问题(Tomcat): | 修改server.xml àURIEncoding="GBK" |
post方式提交内容的乱码 | request.setCharacterEncoding("GBK"); 注意:一定要写在存取第一个参数之前 注意:不要调用response.setCharacterEncoding("GBK"); |
<jsp:param name="user" value="<%=s%>"/>,url地址包含中文参数 | <%request.setCharacterEncoding("GBK");%> |